Icon

You are viewing the documentation of TeamCity 10.x and 2017.x, which is not the most recently released version of TeamCity.
View this page in the latest documentation or refer to the listing to choose the documentation corresponding to your TeamCity version.

 

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

If you want to run ReSharper duplicates using a specific ReSharper version (e.g. to ensure it matches the version you have installed in Visual Studio), since TeamCity 10.0 you can install another version of the tools and can change the default version to be used using the Administration | Tools page.

 

Sources

Option

Description

Include

Use newline-delimited Ant-like wildcards relative to the checkout root to specify the files to be included into the duplicates search.
Visual Studio solution files are parsed and replaced by all source files from all projects within a solution.
Example: src\MySolution.sln

Exclude

Enter newline-delimited Ant-like wildcards to exclude files from the duplicates search (for example, */generated{*}{}.cs). The entries should be relative to the checkout root.

Duplicate Searcher Settings

Option

Description

Code fragments comparison

Anchor
fragComp
fragComp
Use these options to define which elements of the source code should be discarded when searching for repetitive code fragments. Code fragments can be considered duplicated, if they are structurally similar, but contain different variables, fields, methods, types or literals. Refer to the samples below:

Discard namespaces

If this option is checked, similar contents with different namespace specifications will be recognized as duplicates.

Code Block
NLog.Logger.GetInstance().Log("abcd");
A.Log.Logger.GetInstance().Log("abcd");

Discard literals

If this option is checked, similar lines of code with different literals will be recognized as duplicates.

Code Block
myStatusBar.SetText("Not Logged In");
myStatusBar.SetText("Logging In...");

Discard local variables

If this option is checked, similar code fragments with different local variable names will be recognized as duplicates.

Code Block
int a = 5; a += 6;
int b = 5; b += 6;

Discard class fields name

If this option is checked, the similar code fragments with different field names will be recognized as duplicates.

Code Block
Console.WriteLine(myFoo);
Console.WriteLine(myBar);
... where myFoo and myBar are declared in the containing class

Discard types

If this option is checked, similar content with different type names will be recognized as duplicates. These include all possible type references (as shown below):

Code Block
Logger.GetInstance("text");
OtherUtility.GetInstance("text");
... where Logger and OtherUtility are both type names (thus GetInstance is a static method in both classes)

Logger a = (Logger) GetObject("object");
OtherUtility a = (OtherUtility) GetObject("object");

public int SomeMethod(string param);
public void SomeMethod(object[] param);

Ignore duplicates with complexity lower than

Use this field to specify the lowest level of complexity of code blocks to be taken into consideration when detecting duplicates.

Skip files by opening comment

Enter newline-delimited keywords to exclude files that contain the keyword in the file's opening comments from the duplicates search.

Skip regions by message substring

Enter newline-delimited keywords that exclude regions that contain the keyword in the message substring from the duplicates search. Entering "generated code", for example, will skip regions containing "Windows Form Designer generated code".

Enable debug output

Anchor
debug
debug
Check this option to include debug messages in the build log and publish the file with additional logs (dotnet-tools-dupfinder.log) as an artifact.