microsoft / appcenter-sdk-apple
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
  • 19% duplication:
    • 37,308 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 7,348 duplicated lines
  • 918 duplicates
system19% (7,348 lines)
Duplication per Extension
m17% (4,552 lines)
h35% (1,121 lines)
swift21% (1,056 lines)
mm18% (517 lines)
s28% (81 lines)
S48% (21 lines)
Duplication per Component (primary)
AppCenter17% (2,651 lines)
AppCenterAnalytics26% (1,191 lines)
AppCenterCrashes15% (852 lines)
AppCenterDistribute18% (841 lines)
Sasquatch21% (700 lines)
SasquatchMac30% (572 lines)
SasquatchTV36% (295 lines)
ROOT74% (130 lines)
CrashLib13% (116 lines)
Localization0% (0 lines)
Scripts0% (0 lines)

Duplication Between Components (50+ lines)

G Sasquatch Sasquatch SasquatchMac SasquatchMac Sasquatch--SasquatchMac 858 SasquatchTV SasquatchTV Sasquatch--SasquatchTV 494 SasquatchMac--SasquatchTV 400 AppCenterAnalytics AppCenterAnalytics AppCenterDistribute AppCenterDistribute AppCenterAnalytics--AppCenterDistribute 119 AppCenter AppCenter AppCenterCrashes AppCenterCrashes AppCenter--AppCenterCrashes 110

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
105 x 2 AppCenter/AppCenter
AppCenter/AppCenter/include
MSACConstants.h
MSACConstants.h
9:170 (100%)
9:170 (100%)
view
67 x 2 SasquatchMac/SasquatchMacObjC
SasquatchTV/SasquatchTVObjC
AppCenterDelegateObjC.m
AppCenterDelegateObjC.m
123:257 (57%)
98:232 (66%)
view
51 x 2 SasquatchMac/SasquatchMac/EventFilter
SasquatchTV/SasquatchTV/EventFilter
MSEventFilter.m
MSEventFilter.m
7:95 (100%)
7:94 (100%)
view
44 x 2 Sasquatch/SasquatchObjC
SasquatchMac/SasquatchMacObjC
AppCenterDelegateObjC.mm
AppCenterDelegateObjC.m
259:344 (28%)
155:240 (37%)
view
44 x 2 Sasquatch/SasquatchSwift
SasquatchMac/SasquatchMacSwift
AppCenterDelegateSwift.swift
AppCenterDelegateSwift.swift
248:333 (24%)
116:180 (39%)
view
44 x 2 Sasquatch/SasquatchObjC
SasquatchTV/SasquatchTVObjC
AppCenterDelegateObjC.mm
AppCenterDelegateObjC.m
259:344 (28%)
130:215 (43%)
view
38 x 2 ROOT
ROOT
Package.swift
Package@swift-5.3.swift
27:64 (52%)
32:69 (39%)
view
38 x 2 AppCenter/AppCenterTests
AppCenter/AppCenterTests
MSACDeviceLogTests.m
MSACDeviceLogTests.m
99:139 (21%)
169:209 (21%)
view
36 x 2 AppCenter/AppCenterTests
AppCenter/AppCenterTests
MSACDeviceLogTests.m
MSACDeviceLogTests.m
34:70 (20%)
99:135 (20%)
view
36 x 2 AppCenter/AppCenterTests
AppCenter/AppCenterTests
MSACDeviceLogTests.m
MSACDeviceLogTests.m
34:70 (20%)
169:205 (20%)
view
33 x 2 AppCenterCrashes/AppCenterCrashes
AppCenterCrashes/AppCenterCrashes/include
MSACCrashes.h
MSACCrashes.h
16:207 (100%)
16:207 (100%)
view
31 x 2 SasquatchMac/SasquatchMac
SasquatchTV/SasquatchTV
AppCenterDelegate.swift
AppCenterDelegate.swift
42:78 (55%)
36:72 (64%)
view
28 x 2 AppCenter/AppCenter
AppCenter/AppCenter/include
MSACLogger.h
MSACLogger.h
16:52 (100%)
16:52 (100%)
view
28 x 2 AppCenter/AppCenterTests
AppCenter/AppCenterTests
MSACAppDelegateForwarderTests.m
MSACAppDelegateForwarderTests.m
423:452 (5%)
471:500 (5%)
view
27 x 2 AppCenter/AppCenter
AppCenter/AppCenter/include
MSACAppCenter.h
MSACAppCenter.h
15:188 (100%)
15:188 (100%)
view
25 x 2 AppCenterAnalytics/AppCenterAnalyticsTests
AppCenterAnalytics/AppCenterAnalyticsTests
MSACAnalyticsTransmissionTargetTests.m
MSACAnalyticsTransmissionTargetTests.m
163:187 (2%)
353:377 (2%)
view
25 x 2 AppCenterAnalytics/AppCenterAnalyticsTests
AppCenterAnalytics/AppCenterAnalyticsTests
MSACAnalyticsTransmissionTargetTests.m
MSACAnalyticsTransmissionTargetTests.m
201:225 (2%)
353:377 (2%)
view
25 x 2 AppCenterAnalytics/AppCenterAnalyticsTests
AppCenterAnalytics/AppCenterAnalyticsTests
MSACAnalyticsTransmissionTargetTests.m
MSACAnalyticsTransmissionTargetTests.m
163:187 (2%)
201:225 (2%)
view
25 x 2 AppCenterAnalytics/AppCenterAnalyticsTests
AppCenterAnalytics/AppCenterAnalyticsTests
MSACAnalyticsTransmissionTargetTests.m
MSACAnalyticsTransmissionTargetTests.m
163:187 (2%)
239:263 (2%)
view
25 x 2 AppCenterAnalytics/AppCenterAnalyticsTests
AppCenterAnalytics/AppCenterAnalyticsTests
MSACAnalyticsTransmissionTargetTests.m
MSACAnalyticsTransmissionTargetTests.m
163:187 (2%)
315:339 (2%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
85 x 2 AppCenter/AppCenter
AppCenter/AppCenter/include
MSACConstants.h
MSACConstants.h
73:170 
73:170 
view
13 x 2 SasquatchMac/SasquatchMac/ViewControllers
SasquatchMac/SasquatchMac/ViewControllers
AnalyticsViewController.swift
TransmissionViewController.swift
213:226 
508:521 
view
8 x 2 AppCenter/AppCenter
AppCenter/AppCenter/include
MSACConstants.h
MSACConstants.h
9:45 
9:45 
view
7 x 2 AppCenter/AppCenter
AppCenter/AppCenter/include
MSACConstants+Flags.h
MSACConstants+Flags.h
9:16 
9:16 
view
7 x 3 Sasquatch/Sasquatch/ViewControllers
Sasquatch/Sasquatch/ViewControllers
Sasquatch/Sasquatch/ViewControllers
MSDatePicker.swift
MSEnumPicker.swift
MSMainViewController.swift
35:42 
94:101 
267:274 
view