microsoft / elfie-arriba
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
  • 12% duplication:
    • 42,756 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,359 duplicated lines
  • 1,848 duplicates
system12% (5,359 lines)
Duplication per Extension
cs13% (4,743 lines)
jsx6% (242 lines)
cpp22% (146 lines)
cmd24% (87 lines)
scss3% (59 lines)
vcxproj18% (40 lines)
filters22% (16 lines)
js7% (14 lines)
html37% (12 lines)
Duplication per Component (primary)
XForm/XForm31% (4,061 lines)
Arriba/Arriba3% (242 lines)
XForm/XForm.Web13% (185 lines)
XForm/XForm.Native16% (129 lines)
Arriba/Arriba.Web2% (127 lines)
XForm/XForm.Generator14% (116 lines)
Elfie/Xsv7% (62 lines)
Arriba/Arriba.Client5% (59 lines)
Elfie/Elfie1% (56 lines)
Arriba/Arriba.Native22% (48 lines)
Elfie/Elfie.Search5% (38 lines)
Elfie/Elfie.EndToEnd7% (38 lines)
Elfie22% (35 lines)
XForm37% (35 lines)
XForm/XForm.Scanning40% (25 lines)
Arriba36% (17 lines)
Arriba/Databases9% (15 lines)
Arriba/Arriba.Communication<1% (14 lines)
XForm/XForm.Prices7% (12 lines)
Arriba/Arriba.ConsoleTest5% (12 lines)
Arriba/Arriba.Server6% (11 lines)
Elfie/Elfie.Indexer<1% (8 lines)
Elfie/Elfie.Merger5% (8 lines)
Arriba/Tools<1% (6 lines)
Arriba/Arriba.ClientExample0% (0 lines)
Arriba/Arriba.IIS0% (0 lines)
Arriba/Arriba.Query0% (0 lines)
Arriba/Configuration0% (0 lines)
Elfie/Shared0% (0 lines)
Elfie/SourceIndex0% (0 lines)
Elfie/SymbolForge0% (0 lines)
Elfie/SymbolSourceGet0% (0 lines)
ROOT0% (0 lines)
XForm/XForm.IIS0% (0 lines)

Duplication Between Components (50+ lines)

G XForm/XForm.Generator XForm/XForm.Generator XForm/XForm XForm/XForm XForm/XForm.Generator--XForm/XForm 374 Arriba/Arriba.Web Arriba/Arriba.Web XForm/XForm.Web XForm/XForm.Web Arriba/Arriba.Web--XForm/XForm.Web 207 Arriba/Arriba Arriba/Arriba Arriba/Arriba--XForm/XForm 152 Elfie/Xsv Elfie/Xsv Elfie/Xsv--XForm/XForm.Generator 124 XForm/XForm.Native XForm/XForm.Native XForm/XForm.Scanning XForm/XForm.Scanning XForm/XForm.Native--XForm/XForm.Scanning 50

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,848 duplicates...
Size#FoldersFilesLinesCode
33 x 2 Arriba/Arriba.Web/js
XForm/XForm.Web
polyfill.jsx
polyfill.jsx
7:43 (19%)
1:37 (66%)
view
32 x 2 Arriba/Arriba
XForm/XForm/Core
Hashing.cs
Hashing.cs
50:98 (39%)
143:191 (24%)
view
31 x 2 Arriba/Arriba
XForm/XForm/Core
Hashing.cs
Hashing.cs
106:154 (37%)
199:247 (24%)
view
29 x 2 XForm/XForm.Generator
XForm/XForm/Types/Comparers
ComparerGenerator.cs
LongComparer.cs
58:123 (25%)
40:105 (15%)
view
21 x 2 XForm/XForm/Aggregators
XForm/XForm/Aggregators
SumAggregator.cs
SumAggregator.cs
69:113 (20%)
122:166 (20%)
view
21 x 2 XForm/XForm/Aggregators
XForm/XForm/Aggregators
SumAggregator.cs
SumAggregator.cs
69:113 (20%)
175:219 (20%)
view
21 x 2 XForm/XForm/Aggregators
XForm/XForm/Aggregators
SumAggregator.cs
SumAggregator.cs
122:166 (20%)
175:219 (20%)
view
19 x 2 Elfie/Xsv/Sanitize
XForm/XForm.Generator/Mappers
Hashing.cs
Hashing.cs
1:50 (100%)
1:50 (100%)
view
18 x 2 XForm/XForm.Native
XForm/XForm.Native
Comparer16.cpp
Comparer16.cpp
67:102 (8%)
193:228 (8%)
view
18 x 2 XForm/XForm.Native
XForm/XForm.Scanning
String8N.cpp
String8N.cpp
17:54 (16%)
7:44 (72%)
view
17 x 2 Arriba
Elfie
cmd
Build.cmd
Build.cmd
14:32 (65%)
10:28 (73%)
view
16 x 2 Arriba/Arriba.Web/js
XForm/XForm.Web
polyfill.jsx
polyfill.jsx
179:196 (9%)
40:57 (32%)
view
16 x 2 Elfie/Xsv/Sanitize
XForm/XForm.Generator/Mappers
GuidMapper.cs
GuidMapper.cs
13:32 (88%)
13:32 (88%)
view
15 x 2 Arriba/Arriba.Web/parts
Arriba/Databases/Walkthrough/Configuration
ResultDetails.jsx
RateDetails.jsx
3:19 (53%)
4:20 (55%)
view
14 x 2 XForm/XForm/Columns
XForm/XForm/Columns
ArrayColumn.cs
DeferredArrayColumn.cs
29:61 (58%)
35:67 (51%)
view
14 x 2 XForm/XForm/Types/Computers
XForm/XForm/Types/Computers
LongComputer.cs
LongComputer.cs
87:110 (8%)
161:184 (8%)
view
13 x 2 XForm/XForm/Types/Comparers
XForm/XForm/Types/Comparers
FloatComparer.cs
SbyteComparer.cs
114:142 (6%)
114:142 (6%)
view
13 x 2 XForm/XForm/Types/Comparers
XForm/XForm/Types/Comparers
LongComparer.cs
SbyteComparer.cs
114:142 (6%)
114:142 (6%)
view
13 x 2 XForm/XForm/Types/Comparers
XForm/XForm/Types/Comparers
ShortComparer.cs
UshortComparer.cs
114:142 (6%)
114:142 (6%)
view
13 x 2 XForm/XForm/Types/Comparers
XForm/XForm/Types/Comparers
IntComparer.cs
TimeSpanComparer.cs
46:74 (6%)
46:74 (6%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 30 unit duplicates...
Size#FoldersFilesLinesCode
52 x 2 XForm/XForm.Generator
XForm/XForm/Types/Comparers
ComparerGenerator.cs
LongComparer.cs
58:119 
40:101 
view
21 x 2 XForm/XForm.Native
XForm/XForm.Scanning
String8N.cpp
String8N.cpp
17:55 
7:45 
view
17 x 2 XForm/XForm/Aggregators
XForm/XForm/Aggregators
PercentageAggregator.cs
PercentageAggregator.cs
54:73 
75:94 
view
15 x 2 Elfie/Xsv/Sanitize
XForm/XForm.Generator/Mappers
GuidMapper.cs
GuidMapper.cs
13:28 
13:28 
view
15 x 2 XForm/XForm/Verbs
XForm/XForm/Verbs
GroupBy.cs
Peek.cs
92:111 
71:90 
view
14 x 2 Elfie/Elfie/Model/Strings
Elfie/Elfie/Model/Strings
StringStore.cs
StringStore.cs
113:131 
133:151 
view
12 x 2 Elfie/Xsv/Sanitize
XForm/XForm.Generator/Mappers
Hashing.cs
Hashing.cs
37:51 
37:51 
view
10 x 2 Elfie/Xsv/Sanitize
XForm/XForm.Generator/Mappers
IpMapper.cs
IpMapper.cs
13:25 
13:25 
view
9 x 2 Elfie/Elfie/Model/Strings
Elfie/Elfie/Model/Strings
StringStore.cs
StringStore.cs
83:95 
97:109 
view
9 x 2 Elfie/Xsv/Sanitize
XForm/XForm.Generator/Mappers
AliasMapper.cs
AliasMapper.cs
18:29 
17:28 
view
8 x 2 Arriba/Arriba.Client/Monitoring/Consumers
Arriba/Arriba.Server
ConsoleEventConsumer.cs
ConsoleEventConsumer.cs
30:40 
32:42 
view
8 x 2 Arriba/Arriba
XForm/XForm/Core
Hashing.cs
Hashing.cs
146:155 
239:248 
view
8 x 2 Arriba/Arriba/Model/Aggregations
Arriba/Arriba/Model/Aggregations
SumAggregator.cs
SumAggregator.cs
120:130 
132:142 
view
8 x 2 Arriba/Arriba/Model/Aggregations
Arriba/Arriba/Model/Aggregations
SumAggregator.cs
SumAggregator.cs
192:202 
204:214 
view
8 x 2 Elfie/Elfie/Diagnostics
Elfie/Elfie/Diagnostics
Cmd.cs
Cmd.cs
226:235 
237:246 
view
8 x 2 Elfie/Elfie/Model
Elfie/Elfie/Model
AddReferenceDatabase.cs
PackageDatabase.cs
431:440 
218:227 
view
8 x 2 Elfie/Elfie/Model
Elfie/Elfie/Model
AddReferenceDatabase.cs
PackageDatabase.cs
442:451 
229:238 
view
8 x 2 Elfie/Elfie/Serialization
Elfie/Elfie/Serialization
Write.cs
Write.cs
20:30 
37:47 
view
8 x 2 XForm/XForm.Generator/Model
XForm/XForm.Generator/Model
User.cs
WebRequestGenerator.cs
125:135 
122:132 
view
8 x 2 XForm/XForm/Core
XForm/XForm/Core
ChooseDictionary.cs
GroupByDictionary.cs
157:167 
158:168 
view