facebook / openr
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
  • 5% duplication:
    • 41,905 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,212 duplicated lines
  • 212 duplicates
system5% (2,212 lines)
Duplication per Extension
py7% (948 lines)
cpp3% (643 lines)
h4% (319 lines)
cmake12% (302 lines)
Duplication per Component (primary)
openr/py10% (674 lines)
build/fbcode_builder5% (484 lines)
openr/kvstore4% (231 lines)
openr/nl5% (184 lines)
openr/common3% (105 lines)
openr/decision3% (105 lines)
ROOT26% (92 lines)
openr/spark4% (86 lines)
openr/allocators6% (76 lines)
openr/link-monitor3% (60 lines)
openr/fib6% (54 lines)
openr/ctrl-server2% (29 lines)
openr/prefix-manager1% (20 lines)
openr/messaging3% (12 lines)
configerator/structs0% (0 lines)
build0% (0 lines)
openr/monitor0% (0 lines)
openr/config0% (0 lines)
openr/platform0% (0 lines)
openr/if0% (0 lines)
openr/plugin0% (0 lines)
openr/watchdog0% (0 lines)
openr/config-store0% (0 lines)
openr0% (0 lines)
openr/policy0% (0 lines)
Longest Duplicates
The list of 50 longest duplicates.
See data for all 212 duplicates...
Size#FoldersFilesLinesCode
35 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
504:548 (8%)
1420:1463 (3%)
view
21 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
1201:1223 (1%)
1250:1272 (1%)
view
17 x 2 openr/nl
openr/nl
234:250 (4%)
300:316 (4%)
view
15 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
171:185 (8%)
40:54 (15%)
view
14 x 2 openr/py/openr/cli/clis
openr/py/openr/cli/clis
50:63 (5%)
71:84 (5%)
view
14 x 2 openr/kvstore
openr/kvstore
2706:2721 (<1%)
3533:3548 (<1%)
view
14 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
722:735 (1%)
1208:1221 (1%)
view
14 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
553:567 (3%)
1468:1482 (1%)
view
13 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
78:92 (7%)
136:149 (7%)
view
13 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
1:13 (52%)
1:13 (38%)
view
12 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
434:451 (2%)
907:924 (1%)
view
11 x 2 openr/fib
openr/fib
827:839 (1%)
855:867 (1%)
view
11 x 2 ROOT
ROOT
17:27 (4%)
83:93 (4%)
view
11 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
115:127 (4%)
180:192 (4%)
view
11 x 2 openr/py/openr/cli/clis
openr/py/openr/cli/clis
170:180 (8%)
98:108 (4%)
view
11 x 2 openr/common
openr/common
433:443 (1%)
155:165 (5%)
view
11 x 2 openr/link-monitor
openr/link-monitor
89:99 (<1%)
111:124 (6%)
view
11 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
86:97 (6%)
53:64 (11%)
view
11 x 2 openr/allocators
openr/allocators
155:173 (1%)
247:266 (1%)
view
10 x 2 openr/kvstore
openr/kvstore
135:144 (6%)
155:164 (6%)
view
10 x 2 openr/py/openr/cli/clis
openr/py/openr/cli/clis
170:179 (8%)
307:316 (4%)
view
10 x 2 openr/spark
openr/spark
361:370 (<1%)
1215:1224 (<1%)
view
10 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
489:498 (1%)
501:510 (1%)
view
10 x 2 openr/spark
openr/spark
108:121 (<1%)
149:162 (<1%)
view
10 x 2 openr/fib
openr/fib
591:602 (1%)
694:705 (1%)
view
10 x 2 openr/py/openr/cli/clis
openr/py/openr/cli/clis
98:107 (4%)
307:316 (4%)
view
10 x 2 openr/nl
openr/nl
69:79 (2%)
102:112 (2%)
view
10 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
229:238 (<1%)
310:319 (<1%)
view
10 x 2 openr/py/openr/cli/clis
openr/py/openr/cli/clis
63:72 (8%)
62:71 (7%)
view
9 x 2 openr/py/openr/cli
openr/py/openr/cli/commands
9:17 (12%)
14:22 (8%)
view
9 x 2 openr/kvstore
openr/kvstore
47:55 (5%)
94:102 (5%)
view
9 x 2 openr/py/openr/cli/utils
openr/py/openr/cli/utils
1650:1658 (<1%)
1716:1724 (<1%)
view
9 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
27:35 (5%)
29:38 (12%)
view
9 x 2 openr/allocators
openr/allocators
861:874 (1%)
944:958 (1%)
view
9 x 2 openr/nl
openr/nl
361:369 (2%)
401:409 (2%)
view
9 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
778:786 (<1%)
1179:1187 (<1%)
view
9 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
490:500 (2%)
1406:1416 (<1%)
view
9 x 2 ROOT
ROOT
57:65 (3%)
124:132 (3%)
view
9 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
291:299 (1%)
328:336 (1%)
view
9 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
519:527 (<1%)
1179:1187 (<1%)
view
9 x 2 openr/common
openr/common
85:97 (7%)
189:201 (7%)
view
9 x 2 build/fbcode_builder/CMake
build/fbcode_builder/CMake
557:566 (1%)
221:230 (3%)
view
9 x 2 openr/common
openr/common
85:97 (7%)
140:152 (7%)
view
9 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
519:527 (<1%)
778:786 (<1%)
view
9 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
105:113 (2%)
124:132 (2%)
view
9 x 2 openr/common
openr/common
140:152 (7%)
189:201 (7%)
view
9 x 2 openr/py/openr/cli/commands
openr/py/openr/cli/commands
583:591 (<1%)
604:612 (<1%)
view
9 x 2 openr/nl
openr/nl
495:509 (1%)
523:537 (1%)
view
8 x 2 build/fbcode_builder/getdeps
build/fbcode_builder/getdeps
20:27 (2%)
621:628 (1%)
view
8 x 2 openr/py/openr/cli/clis
openr/py/openr/cli/clis
32:39 (3%)
71:78 (3%)
view