@@ -63,21 +63,6 @@ class VersionMerger(private val storeCache: IDeserializingKeyValueStore, private
63
63
if (commonBase?.hash == leftVersion.hash) return rightVersion
64
64
if (commonBase?.hash == rightVersion.hash) return leftVersion
65
65
66
- // val leftHistory = HashMap<Long, CLVersion>().also { collectVersions(leftVersion, commonBase, it) }
67
- // val rightHistory = HashMap<Long, CLVersion>().also { collectVersions(leftVersion, commonBase, it) }
68
- // val leftNonMerges = leftHistory.values.asSequence().filter { !it.isMerge() }.map { it.id }.toSet()
69
- // val rightNonMerges = rightHistory.values.asSequence().filter { !it.isMerge() }.map { it.id }.toSet()
70
- //
71
- // if (leftNonMerges == rightNonMerges) {
72
- // // If there is no actual change on both sides, but they just did the same merge, we have to pick one
73
- // // of them, otherwise both sides will continue creating merges forever.
74
- // return if (leftVersion.id < rightVersion.id) leftVersion else rightVersion
75
- // } else if ((leftNonMerges - rightNonMerges).isEmpty()) {
76
- // return rightVersion // the right history already contains all the left history
77
- // } else if ((rightNonMerges - leftNonMerges).isEmpty()) {
78
- // return leftVersion // the left history already contains all the right history
79
- // }
80
-
81
66
val leftNonMerges = HashSet <Long >().also { collectLatestNonMerges(leftVersion, HashSet (), it) }
82
67
val rightNonMerges = HashSet <Long >().also { collectLatestNonMerges(rightVersion, HashSet (), it) }
83
68
if (leftNonMerges == rightNonMerges) {
@@ -88,7 +73,6 @@ class VersionMerger(private val storeCache: IDeserializingKeyValueStore, private
88
73
89
74
val versionsToApply = LinearHistory (commonBase?.hash).load(leftVersion, rightVersion)
90
75
91
- // println("merge ${getVersion(leftVersionHash).id.toString(16)} ${LinearHistory(storeCache, commonBase).load(leftVersion).map { it.id.toString(16) }} and ${getVersion(rightVersionHash).id.toString(16)} ${LinearHistory(storeCache, commonBase).load(rightVersion).map { it.id.toString(16) }}: ${commonBase?.let{getVersion(it)}?.id?.toString(16)} + ${versionsToApply.map { it.id.toString(16) }}")
92
76
val operationsToApply = versionsToApply.flatMap { captureIntend(it) }
93
77
var mergedVersion: CLVersion ? = null
94
78
var baseTree = commonBase?.tree ? : CLTree (storeCache)
@@ -126,7 +110,6 @@ class VersionMerger(private val storeCache: IDeserializingKeyValueStore, private
126
110
appliedOps.map { it.getOriginalOp() }.toTypedArray(),
127
111
storeCache,
128
112
)
129
- // println("result ${mergedVersion?.id?.toString(16)}")
130
113
}
131
114
if (mergedVersion == null ) {
132
115
throw RuntimeException (" Failed to merge ${leftVersion.hash} and ${rightVersion.hash} " )
@@ -190,15 +173,5 @@ class VersionMerger(private val storeCache: IDeserializingKeyValueStore, private
190
173
}
191
174
return null
192
175
}
193
-
194
- fun collectVersions (version : CLVersion ? , commonBase : CLVersion ? , result : MutableMap <Long , CLVersion >) {
195
- if (version == null ) return
196
- if (result.containsKey(version.id)) return
197
- if (version.id == commonBase?.id) return
198
- result.put(version.id, version)
199
- collectVersions(version.baseVersion, commonBase, result)
200
- collectVersions(version.getMergedVersion1(), commonBase, result)
201
- collectVersions(version.getMergedVersion2(), commonBase, result)
202
- }
203
176
}
204
177
}
0 commit comments