bazelbuild / remote-apis
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
  • 16% duplication:
    • 7,604 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 1,249 duplicated lines
  • 3,988 duplicates
system16% (1,249 lines)
Duplication per Extension
go18% (956 lines)
proto13% (293 lines)
Duplication per Component (primary)
build/bazel/remote/execution/v214% (814 lines)
build/bazel/remote/asset/v127% (358 lines)
build/bazel/remote/logstream/v113% (45 lines)
build/bazel/semver21% (32 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G build/bazel/remote/asset/v1 build/bazel/remote/asset/v1 build/bazel/remote/execution/v2 build/bazel/remote/execution/v2 build/bazel/remote/asset/v1--build/bazel/remote/execution/v2 946 build/bazel/remote/logstream/v1 build/bazel/remote/logstream/v1 build/bazel/remote/asset/v1--build/bazel/remote/logstream/v1 188 build/bazel/semver build/bazel/semver build/bazel/remote/asset/v1--build/bazel/semver 174 build/bazel/remote/execution/v2--build/bazel/remote/logstream/v1 774 build/bazel/remote/execution/v2--build/bazel/semver 764 build/bazel/remote/logstream/v1--build/bazel/semver 74

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 3,988 duplicates...
Size#FoldersFilesLinesCode
25 x 2 build/bazel/remote/asset/v1
build/bazel/remote/asset/v1
proto
remote_asset.proto
remote_asset.proto
179:206 (6%)
258:285 (6%)
view
20 x 2 build/bazel/remote/asset/v1
build/bazel/remote/asset/v1
proto
remote_asset.proto
remote_asset.proto
209:232 (4%)
288:311 (4%)
view
14 x 2 build/bazel/remote/execution/v2
build/bazel/semver
proto
remote_execution.proto
semver.proto
1:15 (<1%)
1:15 (41%)
view
13 x 2 build/bazel/remote/asset/v1
build/bazel/remote/logstream/v1
proto
remote_asset.proto
remote_logstream.proto
1:13 (3%)
1:13 (10%)
view
13 x 2 build/bazel/remote/asset/v1
build/bazel/remote/execution/v2
proto
remote_asset.proto
remote_execution.proto
2:15 (3%)
2:15 (<1%)
view
13 x 2 build/bazel/remote/asset/v1
build/bazel/semver
proto
remote_asset.proto
semver.proto
2:15 (3%)
2:15 (38%)
view
13 x 2 build/bazel/remote/asset/v1
build/bazel/remote/asset/v1
proto
remote_asset.proto
remote_asset.proto
371:385 (3%)
410:424 (3%)
view
12 x 2 build/bazel/remote/asset/v1
build/bazel/remote/logstream/v1
remote_asset.pb.go
remote_logstream.pb.go
1251:1265 (1%)
263:277 (5%)
view
12 x 2 build/bazel/remote/execution/v2
build/bazel/remote/logstream/v1
remote_execution.pb.go
remote_logstream.pb.go
6095:6109 (<1%)
263:277 (5%)
view
12 x 2 build/bazel/remote/logstream/v1
build/bazel/semver
remote_logstream.pb.go
semver.pb.go
263:277 (5%)
173:187 (10%)
view
12 x 2 build/bazel/remote/asset/v1
build/bazel/semver
remote_asset.pb.go
semver.pb.go
1251:1265 (1%)
173:187 (10%)
view
12 x 2 build/bazel/remote/execution/v2
build/bazel/semver
remote_execution.pb.go
semver.pb.go
6095:6109 (<1%)
173:187 (10%)
view
12 x 2 build/bazel/remote/execution/v2
build/bazel/remote/logstream/v1
proto
remote_execution.proto
remote_logstream.proto
2:13 (<1%)
2:13 (9%)
view
12 x 2 build/bazel/remote/asset/v1
build/bazel/remote/execution/v2
remote_asset.pb.go
remote_execution.pb.go
1251:1265 (1%)
6095:6109 (<1%)
view
12 x 2 build/bazel/remote/logstream/v1
build/bazel/semver
proto
remote_logstream.proto
semver.proto
2:13 (9%)
2:13 (35%)
view
10 x 2 build/bazel/remote/execution/v2
build/bazel/remote/execution/v2
proto
remote_execution.proto
remote_execution.proto
558:567 (<1%)
620:629 (<1%)
view
8 x 2 build/bazel/remote/execution/v2
build/bazel/remote/execution/v2
remote_execution.pb.go
remote_execution.pb.go
5711:5718 (<1%)
5915:5922 (<1%)
view
8 x 2 build/bazel/remote/execution/v2
build/bazel/remote/execution/v2
remote_execution.pb.go
remote_execution.pb.go
5531:5538 (<1%)
5579:5586 (<1%)
view
8 x 2 build/bazel/remote/asset/v1
build/bazel/remote/asset/v1
remote_asset.pb.go
remote_asset.pb.go
1179:1186 (<1%)
1251:1258 (<1%)
view
8 x 2 build/bazel/remote/execution/v2
build/bazel/remote/execution/v2
remote_execution.pb.go
remote_execution.pb.go
5687:5694 (<1%)
5903:5910 (<1%)
view
Duplicated Units
The list of top 2 duplicated units.
See data for all 2 unit duplicates...
Size#FoldersFilesLinesCode
7 x 2 build/bazel/remote/execution/v2
build/bazel/remote/execution/v2
remote_execution.pb.go
remote_execution.pb.go
6492:6499 
6501:6508 
view
6 x 2 build/bazel/remote/execution/v2
build/bazel/remote/execution/v2
remote_execution.pb.go
remote_execution.pb.go
6249:6255 
6281:6287 
view