microsoft / xlang
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
  • 44% duplication:
    • 50,628 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 22,710 duplicated lines
  • 349 duplicates
system44% (22,710 lines)
Duplication per Extension
hpp100% (19,152 lines)
h8% (1,366 lines)
cpp11% (1,186 lines)
vcxproj66% (740 lines)
filters60% (109 lines)
js2% (51 lines)
yml11% (44 lines)
cs19% (26 lines)
props38% (24 lines)
natvis11% (12 lines)
Duplication per Component (primary)
library94% (9,602 lines)
UndockedRegFreeWinRT/Catch100% (9,576 lines)
UndockedRegFreeWinRT/detours13% (1,026 lines)
tool/cppxlang10% (730 lines)
tool/abi8% (263 lines)
tool/python6% (183 lines)
UndockedRegFreeWinRT/UndockedRegFreeWinRT14% (177 lines)
library/impl5% (174 lines)
UndockedRegFreeWinRT/EmbeddedTestComponent65% (166 lines)
UndockedRegFreeWinRT/TestComponent74% (166 lines)
UndockedRegFreeWinRT/EmbeddedManifestTest79% (158 lines)
UndockedRegFreeWinRT/UndockedRegFreeWinRTTest78% (158 lines)
UndockedRegFreeWinRT/ManifestParserTest47% (122 lines)
platform8% (88 lines)
scripts2% (51 lines)
scripts/windows20% (22 lines)
package/pywinrt3% (16 lines)
UndockedRegFreeWinRT/EmbeddedManifestManagedTest16% (13 lines)
UndockedRegFreeWinRT/UndockedRegFreeWinRTManagedTest27% (13 lines)
scripts/ubuntu26% (6 lines)
UndockedRegFreeWinRT0% (0 lines)
UndockedRegFreeWinRT/Nuget0% (0 lines)
UndockedRegFreeWinRT/mwinrtact0% (0 lines)
package/abi0% (0 lines)
package/midlrt0% (0 lines)
platform/helpers0% (0 lines)
platform/published0% (0 lines)

Duplication Between Components (50+ lines)

G UndockedRegFreeWinRT/Catch UndockedRegFreeWinRT/Catch library library UndockedRegFreeWinRT/Catch--library 19152 UndockedRegFreeWinRT/EmbeddedTestComponent UndockedRegFreeWinRT/EmbeddedTestComponent UndockedRegFreeWinRT/TestComponent UndockedRegFreeWinRT/TestComponent UndockedRegFreeWinRT/EmbeddedTestComponent--UndockedRegFreeWinRT/TestComponent 332 UndockedRegFreeWinRT/EmbeddedManifestTest UndockedRegFreeWinRT/EmbeddedManifestTest UndockedRegFreeWinRT/UndockedRegFreeWinRTTest UndockedRegFreeWinRT/UndockedRegFreeWinRTTest UndockedRegFreeWinRT/EmbeddedManifestTest--UndockedRegFreeWinRT/UndockedRegFreeWinRTTest 312 UndockedRegFreeWinRT/ManifestParserTest UndockedRegFreeWinRT/ManifestParserTest UndockedRegFreeWinRT/EmbeddedManifestTest--UndockedRegFreeWinRT/ManifestParserTest 192 UndockedRegFreeWinRT/UndockedRegFreeWinRT UndockedRegFreeWinRT/UndockedRegFreeWinRT UndockedRegFreeWinRT/EmbeddedManifestTest--UndockedRegFreeWinRT/UndockedRegFreeWinRT 90 UndockedRegFreeWinRT/detours UndockedRegFreeWinRT/detours UndockedRegFreeWinRT/EmbeddedManifestTest--UndockedRegFreeWinRT/detours 76 UndockedRegFreeWinRT/UndockedRegFreeWinRTTest--UndockedRegFreeWinRT/detours 76 tool/cppxlang tool/cppxlang tool/python tool/python tool/cppxlang--tool/python 244 UndockedRegFreeWinRT/ManifestParserTest--UndockedRegFreeWinRT/UndockedRegFreeWinRTTest 192 UndockedRegFreeWinRT/ManifestParserTest--UndockedRegFreeWinRT/UndockedRegFreeWinRT 92 UndockedRegFreeWinRT/ManifestParserTest--UndockedRegFreeWinRT/detours 76 tool/abi tool/abi tool/abi--tool/python 150 UndockedRegFreeWinRT/UndockedRegFreeWinRT--UndockedRegFreeWinRT/detours 106 UndockedRegFreeWinRT/UndockedRegFreeWinRT--UndockedRegFreeWinRT/UndockedRegFreeWinRTTest 90

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 349 duplicates...
Size#FoldersFilesLinesCode
9378 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
813:16663 (97%)
813:16663 (97%)
view
202 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
95:820 (2%)
95:820 (2%)
view
72 x 2 src/UndockedRegFreeWinRT/detours
src/UndockedRegFreeWinRT/detours
detours.cpp
detours.cpp
193:302 (5%)
418:527 (5%)
view
52 x 2 src/UndockedRegFreeWinRT/EmbeddedTestComponent
src/UndockedRegFreeWinRT/TestComponent
vcxproj
EmbeddedTestComponent.vcxproj
TestComponent.vcxproj
12:78 (30%)
12:78 (36%)
view
43 x 2 src/tool/abi
src/tool/python
abi_writer.h
type_writers.h
144:187 (31%)
188:231 (12%)
view
40 x 2 src/UndockedRegFreeWinRT/EmbeddedManifestTest
src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
vcxproj
EmbeddedManifestTest.vcxproj
UndockedRegFreeWinRTTest.vcxproj
27:77 (24%)
27:77 (24%)
view
36 x 2 src/UndockedRegFreeWinRT/ManifestParserTest
src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
vcxproj
ManifestParserTest.vcxproj
UndockedRegFreeWinRTTest.vcxproj
26:72 (21%)
27:73 (21%)
view
36 x 2 src/UndockedRegFreeWinRT/EmbeddedManifestTest
src/UndockedRegFreeWinRT/ManifestParserTest
vcxproj
EmbeddedManifestTest.vcxproj
ManifestParserTest.vcxproj
27:73 (22%)
26:72 (21%)
view
24 x 2 src/tool/abi
src/tool/python
abi_writer.h
type_writers.h
81:138 (17%)
126:183 (6%)
view
21 x 2 src/library/impl/meta_reader
src/library/impl/meta_reader
custom_attribute.h
custom_attribute.h
117:147 (9%)
165:195 (9%)
view
21 x 2 src/UndockedRegFreeWinRT/EmbeddedTestComponent
src/UndockedRegFreeWinRT/TestComponent
Class.cpp
Class.cpp
9:45 (91%)
9:45 (91%)
view
18 x 2 src/UndockedRegFreeWinRT/EmbeddedManifestTest
src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
vcxproj
EmbeddedManifestTest.vcxproj
UndockedRegFreeWinRTTest.vcxproj
1:23 (11%)
1:23 (10%)
view
18 x 2 src/UndockedRegFreeWinRT/detours
src/UndockedRegFreeWinRT/detours
creatwth.cpp
creatwth.cpp
1394:1416 (1%)
1517:1539 (1%)
view
18 x 2 src/UndockedRegFreeWinRT/detours
src/UndockedRegFreeWinRT/detours
creatwth.cpp
creatwth.cpp
1333:1355 (1%)
1456:1478 (1%)
view
18 x 2 src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
src/UndockedRegFreeWinRT/detours
vcxproj
UndockedRegFreeWinRTTest.vcxproj
detours.vcxproj
51:75 (10%)
67:91 (12%)
view
18 x 2 src/UndockedRegFreeWinRT/EmbeddedManifestTest
src/UndockedRegFreeWinRT/detours
vcxproj
EmbeddedManifestTest.vcxproj
detours.vcxproj
51:75 (11%)
67:91 (12%)
view
17 x 2 src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
vcxproj
UndockedRegFreeWinRT.vcxproj
UndockedRegFreeWinRTTest.vcxproj
50:73 (10%)
51:74 (10%)
view
17 x 2 src/UndockedRegFreeWinRT/EmbeddedManifestTest
src/UndockedRegFreeWinRT/UndockedRegFreeWinRTTest
filters
EmbeddedManifestTest.vcxproj.filters
UndockedRegFreeWinRTTest.vcxproj.filters
1:22 (62%)
1:22 (68%)
view
17 x 2 src/UndockedRegFreeWinRT/EmbeddedManifestTest
src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
vcxproj
EmbeddedManifestTest.vcxproj
UndockedRegFreeWinRT.vcxproj
51:74 (10%)
50:73 (10%)
view
17 x 2 src/UndockedRegFreeWinRT/UndockedRegFreeWinRT
src/UndockedRegFreeWinRT/detours
vcxproj
UndockedRegFreeWinRT.vcxproj
detours.vcxproj
50:73 (10%)
67:90 (12%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 264 unit duplicates...
Size#FoldersFilesLinesCode
183 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
9317:9511 
9317:9511 
view
91 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
2986:3109 
2986:3109 
view
70 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
7278:7351 
7278:7351 
view
63 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
14878:14944 
14878:14944 
view
61 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
14515:14607 
14515:14607 
view
57 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
16233:16305 
16233:16305 
view
54 x 2 src/UndockedRegFreeWinRT/detours
src/UndockedRegFreeWinRT/detours
detours.cpp
detours.cpp
237:294 
462:519 
view
45 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
2922:2978 
2922:2978 
view
43 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
6943:6990 
6943:6990 
view
41 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
12265:12314 
12265:12314 
view
40 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
867:918 
867:918 
view
40 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
13373:13420 
13373:13420 
view
39 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
15949:15994 
15949:15994 
view
36 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
9151:9190 
9151:9190 
view
36 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
9213:9257 
9213:9257 
view
33 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
9036:9070 
9036:9070 
view
32 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
7427:7467 
7427:7467 
view
32 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
13945:13977 
13945:13977 
view
31 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
10228:10268 
10228:10268 
view
30 x 2 src/UndockedRegFreeWinRT/Catch
src/library
catch.hpp
catch.hpp
10820:10853 
10820:10853 
view