microsoft / dotnet-apiport
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 2% duplication:
    • 10,388 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 237 duplicated lines
  • 15 duplicates
system2% (237 lines)
Duplication per Extension
cs1% (135 lines)
yml17% (46 lines)
xaml15% (40 lines)
ps12% (16 lines)
Duplication per Component (primary)
src/ApiPort/ApiPort.VisualStudio6% (56 lines)
src/ApiPort/ApiPort6% (52 lines)
ROOT8% (36 lines)
src/lib/Microsoft.Fx.Portability<1% (25 lines)
azure-pipelines5% (18 lines)
src/lib/Microsoft.Fx.Portability.Cci1% (16 lines)
src/lib/Microsoft.Fx.Portability.MetadataReader1% (16 lines)
src/ApiPort/ApiPort.VisualStudio.Common<1% (10 lines)
tools2% (8 lines)
azure-pipelines/variables0% (0 lines)
src/ApiPort/ApiPort.VisualStudio.20170% (0 lines)
src/ApiPort/ApiPort.Vsix0% (0 lines)
src/lib/Microsoft.Fx.Portability.Offline0% (0 lines)
src/lib/Microsoft.Fx.Portability.Reports.DGML0% (0 lines)
src/lib/Microsoft.Fx.Portability.Reports.Excel0% (0 lines)
src/lib/Microsoft.Fx.Portability.Reports.Html0% (0 lines)
src/lib/Microsoft.Fx.Portability.Reports.Json0% (0 lines)
Longest Duplicates
The list of 15 longest duplicates.
See data for all 15 duplicates...
Size#FoldersFilesLinesCode
16 x 2 src/lib/Microsoft.Fx.Portability.Cci/Analyzer
src/lib/Microsoft.Fx.Portability.MetadataReader
MemberDependency.cs
MemberDependency.cs
37:74 (40%)
55:92 (34%)
view
14 x 2 ROOT
ROOT
azure-pipelines-release.yml
azure-pipelines.yml
11:26 (43%)
12:27 (48%)
view
13 x 2 src/lib/Microsoft.Fx.Portability.MetadataReader
src/lib/Microsoft.Fx.Portability/ObjectModel
MemberDependency.cs
MemberInfo.cs
55:83 (27%)
32:60 (28%)
view
13 x 2 src/lib/Microsoft.Fx.Portability.Cci/Analyzer
src/lib/Microsoft.Fx.Portability/ObjectModel
MemberDependency.cs
MemberInfo.cs
37:65 (32%)
32:60 (28%)
view
12 x 2 src/ApiPort/ApiPort
src/lib/Microsoft.Fx.Portability
ApiPortServiceSearcher.cs
ApiPortServiceSearcher.cs
1:31 (100%)
1:30 (100%)
view
11 x 2 src/ApiPort/ApiPort
src/ApiPort/ApiPort
DocIdSearchRepl.cs
Program.cs
113:128 (18%)
174:189 (11%)
view
10 x 2 src/ApiPort/ApiPort.VisualStudio.Common
src/ApiPort/ApiPort
AssemblyFile.cs
FilePathAssemblyFile.cs
18:42 (52%)
16:40 (71%)
view
9 x 2 azure-pipelines
azure-pipelines
build-linux.yml
build-windows.yml
29:38 (27%)
72:81 (10%)
view
8 x 2 ROOT
tools
init.ps1
Install-DotNetSdk.ps1
13:20 (8%)
10:17 (5%)
view
8 x 2 src/ApiPort/ApiPort
src/ApiPort/ApiPort
ConsoleProgressReporter.cs
Program.cs
66:75 (8%)
174:184 (8%)
view
8 x 2 src/ApiPort/ApiPort
src/ApiPort/ApiPort
ConsoleProgressReporter.cs
DocIdSearchRepl.cs
66:75 (8%)
113:123 (13%)
view
8 x 2 src/ApiPort/ApiPort.VisualStudio
src/ApiPort/ApiPort.VisualStudio
AnalyzeMenu.cs
AnalyzeMenu.cs
69:79 (8%)
140:150 (8%)
view
8 x 2 src/ApiPort/ApiPort.VisualStudio/Views
src/ApiPort/ApiPort.VisualStudio/Views
xaml
AnalysisOutputToolWindowControl.xaml
OptionsPageControl.xaml
15:25 (10%)
10:21 (5%)
view
6 x 2 src/ApiPort/ApiPort.VisualStudio/Views
src/ApiPort/ApiPort.VisualStudio/Views
xaml
AnalysisOutputToolWindowControl.xaml
OptionsPageControl.xaml
6:11 (8%)
2:7 (3%)
view
6 x 2 src/ApiPort/ApiPort.VisualStudio/Views
src/ApiPort/ApiPort.VisualStudio/Views
xaml
OptionsPageControl.xaml
OptionsPageControl.xaml
89:96 (3%)
140:147 (3%)
view
Duplicated Units
The list of top 4 duplicated units.
See data for all 4 unit duplicates...
Size#FoldersFilesLinesCode
17 x 2 src/ApiPort/ApiPort
src/ApiPort/ApiPort
DocIdSearchRepl.cs
Program.cs
111:130 
172:191 
view
7 x 2 src/lib/Microsoft.Fx.Portability.MetadataReader
src/lib/Microsoft.Fx.Portability.MetadataReader
MemberMetadataInfoTypeProvider.cs
MemberMetadataInfoTypeProvider.cs
308:317 
319:327 
view
7 x 2 src/lib/Microsoft.Fx.Portability
src/lib/Microsoft.Fx.Portability
ApiNote.cs
BreakingChange.cs
21:29 
78:86 
view
6 x 2 src/lib/Microsoft.Fx.Portability.MetadataReader
src/lib/Microsoft.Fx.Portability.MetadataReader
MemberMetadataInfoTypeProvider.cs
MemberMetadataInfoTypeProvider.cs
284:290 
300:306 
view