microsoft / pal
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
  • 11% duplication:
    • 35,646 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,037 duplicated lines
  • 918 duplicates
system11% (4,037 lines)
Duplication per Extension
proj88% (2,007 lines)
cpp5% (1,243 lines)
vcxproj58% (372 lines)
h3% (276 lines)
py6% (88 lines)
filters20% (51 lines)
Duplication per Component (primary)
source/code/scxsystemlib5% (794 lines)
build39% (423 lines)
source/code/scxcorelib3% (279 lines)
source/code/include3% (276 lines)
source/code/util8% (170 lines)
build/TeamBuildTypes/Linux_REDHAT_5.0_x86_6496% (88 lines)
build/TeamBuildTypes/HPUX_11.31_pa-risc_3296% (88 lines)
build/TeamBuildTypes/Linux_SUSE_9.0_x86_3296% (88 lines)
build/TeamBuildTypes/HPUX_11.23_ia64_3296% (88 lines)
build/TeamBuildTypes/Linux_REDHAT_4.0_x86_6496% (88 lines)
build/TeamBuildTypes/Ubuntu_6.06_3296% (88 lines)
build/TeamBuildTypes/SunOS_5.8_sparc_3296% (88 lines)
build/TeamBuildTypes/Ubuntu_6.06_6496% (88 lines)
build/TeamBuildTypes/HPUX_11.23_pa-risc_3296% (88 lines)
build/TeamBuildTypes/AIX_6.1_ppc_3296% (88 lines)
build/TeamBuildTypes/SunOS_5.10_sparc_3296% (88 lines)
build/TeamBuildTypes/SunOS_5.10_x86_3292% (88 lines)
build/TeamBuildTypes/Linux_REDHAT_4.0_x86_3296% (88 lines)
build/TeamBuildTypes/SunOS_5.9_sparc_3296% (88 lines)
build/TeamBuildTypes/AIX_5.3_ppc_3296% (88 lines)
build/TeamBuildTypes/Linux_SUSE_11.0_x86_3296% (86 lines)
build/TeamBuildTypes/Linux_SUSE_11.0_x86_6496% (86 lines)
build/TeamBuildTypes/Linux_SUSE_10.0_x86_6496% (86 lines)
build/TeamBuildTypes/HPUX_11.31_ia64_3293% (85 lines)
build/TeamBuildTypes/MacOS_10.5_x86_3294% (84 lines)
build/TeamBuildTypes/Linux_SUSE_10.0_x86_3288% (84 lines)
build/TeamBuildTypes/MacOS_10.4_x86_3293% (83 lines)
build/TeamBuildTypes/Linux_REDHAT_5.0_x86_3281% (73 lines)
installer/InstallBuilder6% (71 lines)
installer/InstallBuilder/unittests9% (17 lines)
build/TeamBuildTypes/WindowsTestrun19% (13 lines)
build/TeamBuildTypes/ApplyLabel6% (7 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G build/TeamBuildTypes/HPUX_11.23_pa-risc_32 build/TeamBuildTypes/HPUX_11.23_pa-risc_32 build/TeamBuildTypes/SunOS_5.9_sparc_32 build/TeamBuildTypes/SunOS_5.9_sparc_32 build/TeamBuildTypes/HPUX_11.23_pa-risc_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 build/TeamBuildTypes/HPUX_11.23_pa-risc_32--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64 build/TeamBuildTypes/HPUX_11.23_pa-risc_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32 build/TeamBuildTypes/HPUX_11.23_pa-risc_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32 176 build/TeamBuildTypes/HPUX_11.31_pa-risc_32 build/TeamBuildTypes/HPUX_11.31_pa-risc_32 build/TeamBuildTypes/HPUX_11.23_pa-risc_32--build/TeamBuildTypes/HPUX_11.31_pa-risc_32 176 build/TeamBuildTypes/SunOS_5.10_sparc_32 build/TeamBuildTypes/SunOS_5.10_sparc_32 build/TeamBuildTypes/SunOS_5.10_sparc_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/SunOS_5.8_sparc_32 build/TeamBuildTypes/SunOS_5.8_sparc_32 build/TeamBuildTypes/SunOS_5.10_sparc_32--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64--build/TeamBuildTypes/SunOS_5.10_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/HPUX_11.23_ia64_32 build/TeamBuildTypes/HPUX_11.23_ia64_32 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/HPUX_11.31_pa-risc_32 176 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/SunOS_5.10_sparc_32 176 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64 176 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 176 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/HPUX_11.23_pa-risc_32 176 build/TeamBuildTypes/HPUX_11.23_ia64_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/HPUX_11.31_pa-risc_32--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/HPUX_11.31_pa-risc_32--build/TeamBuildTypes/SunOS_5.10_sparc_32 176 build/TeamBuildTypes/HPUX_11.31_pa-risc_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/HPUX_11.31_pa-risc_32--build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 176 build/TeamBuildTypes/Linux_SUSE_9.0_x86_32--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/Linux_SUSE_9.0_x86_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64--build/TeamBuildTypes/SunOS_5.10_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/SunOS_5.8_sparc_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32--build/TeamBuildTypes/SunOS_5.10_sparc_32 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32--build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 176 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/AIX_5.3_ppc_32 build/TeamBuildTypes/AIX_5.3_ppc_32 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/HPUX_11.23_pa-risc_32 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/SunOS_5.10_sparc_32 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/SunOS_5.9_sparc_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32 build/TeamBuildTypes/AIX_6.1_ppc_32 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/AIX_6.1_ppc_32 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/HPUX_11.23_ia64_32 176 build/TeamBuildTypes/AIX_5.3_ppc_32--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/SunOS_5.8_sparc_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/HPUX_11.23_pa-risc_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/Linux_SUSE_9.0_x86_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/HPUX_11.23_ia64_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/HPUX_11.31_pa-risc_32 176 build/TeamBuildTypes/AIX_6.1_ppc_32--build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64 176

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 918 duplicates...
Size#FoldersFilesLinesCode
63 x 2 build/TeamBuildTypes/HPUX_11.23_pa-risc_32
build/TeamBuildTypes/SunOS_5.9_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/SunOS_5.10_sparc_32
build/TeamBuildTypes/SunOS_5.9_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64
build/TeamBuildTypes/SunOS_5.10_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_ia64_32
build/TeamBuildTypes/HPUX_11.31_pa-risc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.31_pa-risc_32
build/TeamBuildTypes/Linux_SUSE_9.0_x86_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_ia64_32
build/TeamBuildTypes/SunOS_5.10_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64
build/TeamBuildTypes/SunOS_5.10_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
115:255 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_ia64_32
build/TeamBuildTypes/SunOS_5.8_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_pa-risc_32
build/TeamBuildTypes/Linux_SUSE_9.0_x86_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_ia64_32
build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_SUSE_9.0_x86_32
build/TeamBuildTypes/SunOS_5.8_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_pa-risc_32
build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.23_pa-risc_32
build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64
build/TeamBuildTypes/SunOS_5.8_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/HPUX_11.31_pa-risc_32
build/TeamBuildTypes/SunOS_5.10_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:254 (69%)
view
63 x 2 build/TeamBuildTypes/SunOS_5.8_sparc_32
build/TeamBuildTypes/SunOS_5.9_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:254 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/AIX_5.3_ppc_32
build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64
proj
TFSBuild.proj
TFSBuild.proj
114:255 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_REDHAT_5.0_x86_64
build/TeamBuildTypes/Linux_SUSE_9.0_x86_32
proj
TFSBuild.proj
TFSBuild.proj
115:255 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_32
build/TeamBuildTypes/SunOS_5.9_sparc_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:253 (69%)
view
63 x 2 build/TeamBuildTypes/Linux_REDHAT_4.0_x86_64
build/TeamBuildTypes/Linux_SUSE_9.0_x86_32
proj
TFSBuild.proj
TFSBuild.proj
114:253 (69%)
114:253 (69%)
view
Duplicated Units
The list of top 9 duplicated units.
See data for all 9 unit duplicates...
Size#FoldersFilesLinesCode
12 x 2 source/code/scxsystemlib/disk
source/code/scxsystemlib/disk
statisticallogicaldiskenumeration.cpp
statisticalphysicaldiskenumeration.cpp
522:535 
576:589 
view
9 x 2 source/code/scxcorelib/util
source/code/scxcorelib/util
scxmath.cpp
scxmath.cpp
162:172 
180:190 
view
9 x 2 source/code/scxsystemlib/process
source/code/scxsystemlib/process
processinstance.cpp
processinstance.cpp
858:870 
1016:1032 
view
7 x 3 installer/InstallBuilder
installer/InstallBuilder
installer/InstallBuilder
aixlpp.py
linuxdpkg.py
sunospkg.py
0:0 
0:0 
0:0 
view
7 x 3 installer/InstallBuilder
installer/InstallBuilder
installer/InstallBuilder
sunospkg.py
aixlpp.py
linuxdpkg.py
0:0 
0:0 
0:0 
view
7 x 2 source/code/scxsystemlib/common
source/code/scxsystemlib/common
scxkstat.cpp
scxkstat.cpp
455:463 
472:480 
view
7 x 2 source/code/scxsystemlib/cpu
source/code/scxsystemlib/cpu
cpuinstance.cpp
cpuinstance.cpp
101:108 
119:126 
view
7 x 2 source/code/scxsystemlib/disk
source/code/scxsystemlib/disk
statisticallogicaldiskenumeration.cpp
statisticalphysicaldiskenumeration.cpp
175:182 
174:181 
view
6 x 2 source/code/include/scxsystemlib
source/code/scxsystemlib/computersystem
entityenumeration.h
computersystemenumeration.cpp
144:150 
79:86 
view