facebookincubator / antlir
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
  • 6% duplication:
    • 39,208 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,645 duplicated lines
  • 1,665 duplicates
system6% (2,645 lines)
Duplication per Extension
rs14% (1,802 lines)
bzl3% (391 lines)
py2% (388 lines)
toml11% (64 lines)
Duplication per Component (primary)
metalos/lib13% (993 lines)
metalos/metalctl24% (581 lines)
antlir/bzl4% (398 lines)
antlir5% (188 lines)
antlir/vm4% (97 lines)
metalos/host_configs8% (86 lines)
tools/testinfra22% (68 lines)
antlir/rpm1% (68 lines)
antlir/compiler1% (52 lines)
antlir/nspawn_in_subvol1% (37 lines)
antlir/linux13% (20 lines)
antlir/buck_query13% (18 lines)
metalos/os14% (14 lines)
metalos/initrd4% (7 lines)
metalos/metalos_macros9% (6 lines)
antlir/website1% (6 lines)
antlir/btrfs_diff<1% (6 lines)
snapshot0% (0 lines)
tools/build0% (0 lines)
antlir/proxy0% (0 lines)
metalos/bzl0% (0 lines)
metalos/disk0% (0 lines)
metalos0% (0 lines)
config0% (0 lines)
images/appliance0% (0 lines)

Duplication Between Components (50+ lines)

G metalos/lib metalos/lib metalos/metalctl metalos/metalctl metalos/lib--metalos/metalctl 361 metalos/metalos_macros metalos/metalos_macros metalos/lib--metalos/metalos_macros 174 metalos/metalctl--metalos/metalos_macros 102 metalos/host_configs metalos/host_configs metalos/host_configs--metalos/lib 217 metalos/host_configs--metalos/metalctl 146 metalos/initrd metalos/initrd metalos/host_configs--metalos/initrd 51 metalos/initrd--metalos/lib 176 metalos/initrd--metalos/metalctl 105

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 50 longest duplicates.
See data for all 1,665 duplicates...
Size#FoldersFilesLinesCode
82 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
61:193 (68%)
50:182 (73%)
view
43 x 2 metalos/metalctl/src
metalos/metalctl/src
249:291 (13%)
312:354 (13%)
view
31 x 2 metalos/metalctl/src
metalos/metalctl/src
787:825 (3%)
859:897 (3%)
view
30 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
60:117 (24%)
57:114 (26%)
view
30 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
60:117 (24%)
68:125 (25%)
view
29 x 2 metalos/lib/send_events/src
metalos/metalctl/src
473:509 (7%)
119:155 (23%)
view
27 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
149:185 (22%)
146:182 (24%)
view
27 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
149:185 (22%)
157:193 (22%)
view
24 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
120:153 (19%)
103:136 (19%)
view
24 x 2 metalos/metalctl/src
metalos/metalctl/src
867:894 (2%)
914:941 (2%)
view
24 x 2 metalos/lib/systemd/src
metalos/lib/systemd/src
426:454 (7%)
251:280 (9%)
view
24 x 2 metalos/metalctl/src
metalos/metalctl/src
795:822 (2%)
914:941 (2%)
view
21 x 2 antlir/bzl
antlir/bzl
172:193 (6%)
231:252 (6%)
view
21 x 2 metalos/metalctl/src
metalos/metalctl/src
570:590 (2%)
638:658 (2%)
view
20 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
108:131 (17%)
132:155 (16%)
view
20 x 2 tools/testinfra/runner/src
tools/testinfra/runner/src
1:28 (38%)
1:30 (37%)
view
18 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
108:129 (15%)
115:136 (14%)
view
16 x 2 metalos/metalctl/src
metalos/metalctl/src
601:619 (1%)
663:681 (1%)
view
16 x 2 antlir/bzl/image/feature
antlir/bzl/image/feature
33:54 (23%)
66:87 (23%)
view
15 x 2 metalos/metalctl/src/update
metalos/metalctl/src/update
1:18 (71%)
1:18 (71%)
view
15 x 2 metalos/lib/send_events/src
metalos/metalctl/src
435:451 (4%)
76:92 (12%)
view
15 x 2 antlir/bzl/linux/boot/grub2
antlir/bzl/linux/boot/systemd
9:23 (57%)
9:23 (57%)
view
14 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
110:125 (9%)
141:156 (9%)
view
13 x 2 metalos/metalctl/src
metalos/metalctl/src
290:303 (1%)
314:327 (1%)
view
13 x 2 antlir
antlir
53:65 (25%)
157:169 (11%)
view
13 x 2 metalos/lib/systemd/src
metalos/lib/systemd/src
233:245 (5%)
285:298 (5%)
view
13 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
139:155 (11%)
146:162 (10%)
view
11 x 2 metalos/metalctl/src
metalos/metalctl/src
668:681 (1%)
731:744 (1%)
view
11 x 2 tools/testinfra/runner/src
tools/testinfra/runner/src
34:47 (21%)
32:45 (20%)
view
11 x 2 metalos/metalctl/src
metalos/metalctl/src
606:619 (1%)
731:744 (1%)
view
11 x 2 antlir/compiler/items
antlir/compiler/items
199:212 (6%)
32:45 (50%)
view
10 x 2 metalos/lib/starlark_util/src
metalos/lib/starlark_util/src
214:223 (6%)
377:386 (3%)
view
10 x 2 antlir/rpm
antlir/rpm
193:202 (4%)
219:228 (4%)
view
10 x 2 metalos/lib/systemd_generator_lib/src
metalos/lib/systemd_generator_lib/src
293:306 (2%)
336:349 (2%)
view
10 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
55:69 (15%)
74:88 (15%)
view
10 x 2 metalos/metalctl/src
metalos/metalctl/src
318:327 (1%)
333:342 (1%)
view
10 x 2 antlir/vm
antlir/vm
109:129 (5%)
152:174 (5%)
view
10 x 2 metalos/lib/systemd_generator_lib/src
metalos/lib/systemd_generator_lib/src
270:279 (2%)
418:427 (2%)
view
10 x 2 metalos/metalctl/src
metalos/metalctl/src
294:303 (1%)
333:342 (1%)
view
9 x 2 antlir
antlir
262:272 (3%)
326:336 (3%)
view
9 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
1:11 (7%)
1:11 (7%)
view
9 x 2 antlir
antlir
278:295 (3%)
345:362 (3%)
view
9 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
1:11 (8%)
1:11 (7%)
view
9 x 2 antlir
antlir
243:260 (3%)
312:323 (3%)
view
9 x 2 metalos/lib/systemd_generator_lib/src
metalos/lib/systemd_generator_lib/src
306:314 (2%)
472:480 (2%)
view
9 x 2 antlir/rpm
antlir/rpm
510:526 (2%)
580:594 (2%)
view
9 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
1:11 (7%)
1:11 (7%)
view
9 x 2 metalos/metalctl/src
metalos/metalctl/src
1027:1035 (1%)
1041:1049 (1%)
view
9 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
1:11 (7%)
1:11 (8%)
view
9 x 2 metalos/metalctl/src
metalos/metalctl/src
986:994 (1%)
1008:1016 (1%)
view
Duplicated Units
The list of top 4 duplicated units.
See data for all 4 unit duplicates...
Size#FoldersFilesLinesCode
7 x 3 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
149:157 
146:154 
157:165 
view
7 x 3 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
175:183 
172:180 
183:191 
view
6 x 3 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
132:139 
108:115 
115:122 
view
6 x 2 metalos/lib/serde_systemd/src/ser
metalos/lib/serde_systemd/src/ser
129:136 
140:147 
view