GerritCodeReview / buck
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:
    • 23,998 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 708 duplicated lines
  • 77 duplicates
system2% (708 lines)
Duplication per Extension
java2% (668 lines)
py4% (40 lines)
Duplication per Component (primary)
src/com/facebook/buck/cli4% (179 lines)
src/com/facebook/buck/dalvik22% (137 lines)
src/com/facebook/buck/java4% (127 lines)
src/com/facebook/buck/android2% (111 lines)
plugin/src/com/facebook/buck5% (50 lines)
src/com/facebook/buck/parser3% (40 lines)
src/com/facebook/buck/rules<1% (20 lines)
src/com/facebook/buck/model6% (18 lines)
src/com/facebook/buck/step1% (8 lines)
src/com/facebook/buck/parcelable1% (6 lines)
src/com/facebook/buck/zip<1% (6 lines)
src/com/facebook/buck/shell<1% (6 lines)
scripts0% (0 lines)
src/com/facebook/buck/junit0% (0 lines)
src/com/facebook/buck/timing0% (0 lines)
src/com/facebook/buck/httpserver0% (0 lines)
src/com/facebook/buck/graph0% (0 lines)
src/com/facebook/buck/event0% (0 lines)
src/com/facebook/buck/util0% (0 lines)
src/com/facebook/buck/python0% (0 lines)
src/com/facebook/buck/command0% (0 lines)
src/com/facebook/buck/json0% (0 lines)

Duplication Between Components (50+ lines)

G src/com/facebook/buck/android src/com/facebook/buck/android src/com/facebook/buck/java src/com/facebook/buck/java src/com/facebook/buck/android--src/com/facebook/buck/java 153

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 77 duplicates...
Size#FoldersFilesLinesCode
29 x 2 src/com/facebook/buck/cli
src/com/facebook/buck/cli
AuditClasspathCommand.java
AuditInputCommand.java
46:84 (32%)
38:76 (59%)
view
13 x 2 src/com/facebook/buck/android
src/com/facebook/buck/java
IntermediateDexRule.java
AccumulateClassNames.java
84:102 (30%)
215:233 (12%)
view
12 x 2 src/com/facebook/buck/android
src/com/facebook/buck/android
AndroidBinaryRule.java
PrebuiltNativeLibrary.java
1333:1348 (1%)
140:155 (17%)
view
12 x 2 src/com/facebook/buck/android
src/com/facebook/buck/java
PrebuiltNativeLibrary.java
PrebuiltJarRule.java
140:155 (17%)
273:288 (7%)
view
12 x 2 src/com/facebook/buck/android
src/com/facebook/buck/java
AndroidBinaryRule.java
PrebuiltJarRule.java
1333:1348 (1%)
273:288 (7%)
view
11 x 2 src/com/facebook/buck/android
src/com/facebook/buck/java
RobolectricTestRule.java
JavaTestRule.java
68:78 (14%)
82:92 (4%)
view
11 x 2 src/com/facebook/buck/dalvik
src/com/facebook/buck/dalvik
DalvikAwareOutputStreamHelper.java
DefaultZipOutputStreamHelper.java
83:97 (19%)
74:88 (26%)
view
10 x 2 src/com/facebook/buck/android
src/com/facebook/buck/android
AndroidResourceRule.java
PrebuiltNativeLibrary.java
275:288 (5%)
140:153 (14%)
view
10 x 2 src/com/facebook/buck/android
src/com/facebook/buck/android
AndroidBinaryRule.java
AndroidResourceRule.java
1333:1346 (1%)
275:288 (5%)
view
10 x 2 src/com/facebook/buck/android
src/com/facebook/buck/android
AndroidLibraryRule.java
AndroidResourceRule.java
127:142 (12%)
272:287 (5%)
view
10 x 2 src/com/facebook/buck/dalvik
src/com/facebook/buck/dalvik
DefaultZipSplitter.java
DefaultZipSplitter.java
53:62 (9%)
74:83 (9%)
view
10 x 2 src/com/facebook/buck/android
src/com/facebook/buck/java
AndroidResourceRule.java
PrebuiltJarRule.java
275:288 (5%)
273:286 (6%)
view
10 x 2 plugin/src/com/facebook/buck/plugin/intellij/ui
plugin/src/com/facebook/buck/plugin/intellij/ui
MessageTreeRenderer.java
TargetsTreeRenderer.java
34:45 (15%)
36:47 (23%)
view
9 x 2 plugin/src/com/facebook/buck/plugin/intellij
plugin/src/com/facebook/buck/plugin/intellij
BuckPluginComponent.java
BuckPluginComponent.java
174:182 (6%)
193:201 (6%)
view
9 x 2 src/com/facebook/buck/android
src/com/facebook/buck/android
AndroidLibraryRule.java
PrebuiltNativeLibrary.java
130:142 (11%)
140:152 (13%)
view
9 x 2 src/com/facebook/buck/dalvik
src/com/facebook/buck/dalvik
DalvikAwareZipSplitterFactory.java
DefaultZipSplitterFactory.java
33:41 (40%)
44:52 (36%)
view
9 x 2 src/com/facebook/buck/android
src/com/facebook/buck/android
AndroidBinaryRule.java
AndroidLibraryRule.java
1333:1345 (1%)
130:142 (11%)
view
9 x 2 src/com/facebook/buck/java
src/com/facebook/buck/java
JavaTestRule.java
PrebuiltJarRule.java
419:431 (3%)
273:285 (5%)
view
9 x 2 src/com/facebook/buck/android
src/com/facebook/buck/java
AndroidBinaryRule.java
JavaTestRule.java
1333:1345 (1%)
419:431 (3%)
view
9 x 2 src/com/facebook/buck/dalvik
src/com/facebook/buck/dalvik
DefaultZipSplitter.java
DefaultZipSplitterFactory.java
86:94 (8%)
54:62 (36%)
view
Duplicated Units
The list of top 4 duplicated units.
See data for all 4 unit duplicates...
Size#FoldersFilesLinesCode
6 x 3 src/com/facebook/buck/cli
src/com/facebook/buck/cli
src/com/facebook/buck/cli
UninstallEvent.java
InstallEvent.java
StartActivityEvent.java
101:108 
101:108 
111:118 
view
6 x 2 src/com/facebook/buck/event/listener
src/com/facebook/buck/event/listener
ChromeTraceBuildListener.java
ChromeTraceBuildListener.java
160:166 
227:233 
view
6 x 2 src/com/facebook/buck/event/listener
src/com/facebook/buck/event/listener
ChromeTraceBuildListener.java
ChromeTraceBuildListener.java
169:175 
342:348 
view
6 x 2 src/com/facebook/buck/rules
src/com/facebook/buck/step
BuildEvent.java
StepEvent.java
105:112 
110:117 
view