Show More
@@ -285,10 +285,10 b' def _makegetfctx(ctx):' | |||
|
285 | 285 | return fctx |
|
286 | 286 | return util.lrucachefunc(makectx) |
|
287 | 287 | |
|
288 |
def mergecopies(repo, c1, c2, |
|
|
288 | def mergecopies(repo, c1, c2, base): | |
|
289 | 289 | """ |
|
290 | 290 | Find moves and copies between context c1 and c2 that are relevant |
|
291 | for merging. | |
|
291 | for merging. 'base' will be used as the merge base. | |
|
292 | 292 | |
|
293 | 293 | Returns four dicts: "copy", "movewithdir", "diverge", and |
|
294 | 294 | "renamedelete". |
@@ -329,7 +329,7 b' def mergecopies(repo, c1, c2, ca):' | |||
|
329 | 329 | |
|
330 | 330 | m1 = c1.manifest() |
|
331 | 331 | m2 = c2.manifest() |
|
332 |
m |
|
|
332 | mb = base.manifest() | |
|
333 | 333 | |
|
334 | 334 | # gather data from _checkcopies: |
|
335 | 335 | # - diverge = record all diverges in this dict |
@@ -346,17 +346,17 b' def mergecopies(repo, c1, c2, ca):' | |||
|
346 | 346 | } |
|
347 | 347 | |
|
348 | 348 | # find interesting file sets from manifests |
|
349 |
addedinm1 = m1.filesnotin(m |
|
|
350 |
addedinm2 = m2.filesnotin(m |
|
|
349 | addedinm1 = m1.filesnotin(mb) | |
|
350 | addedinm2 = m2.filesnotin(mb) | |
|
351 | 351 | u1r, u2r = _computenonoverlap(repo, c1, c2, addedinm1, addedinm2) |
|
352 | 352 | u1u, u2u = u1r, u2r |
|
353 | 353 | bothnew = sorted(addedinm1 & addedinm2) |
|
354 | 354 | |
|
355 | 355 | for f in u1u: |
|
356 |
_checkcopies(c1, f, m1, m2, |
|
|
356 | _checkcopies(c1, f, m1, m2, base, limit, data1) | |
|
357 | 357 | |
|
358 | 358 | for f in u2u: |
|
359 |
_checkcopies(c2, f, m2, m1, |
|
|
359 | _checkcopies(c2, f, m2, m1, base, limit, data2) | |
|
360 | 360 | |
|
361 | 361 | copy = dict(data1['copy'].items() + data2['copy'].items()) |
|
362 | 362 | fullcopy = dict(data1['fullcopy'].items() + data2['fullcopy'].items()) |
@@ -384,8 +384,8 b' def mergecopies(repo, c1, c2, ca):' | |||
|
384 | 384 | 'diverge': bothdiverge, |
|
385 | 385 | } |
|
386 | 386 | for f in bothnew: |
|
387 |
_checkcopies(c1, f, m1, m2, |
|
|
388 |
_checkcopies(c2, f, m2, m1, |
|
|
387 | _checkcopies(c1, f, m1, m2, base, limit, bothdata) | |
|
388 | _checkcopies(c2, f, m2, m1, base, limit, bothdata) | |
|
389 | 389 | for of, fl in bothdiverge.items(): |
|
390 | 390 | if len(fl) == 2 and fl[0] == fl[1]: |
|
391 | 391 | copy[fl[0]] = of # not actually divergent, just matching renames |
General Comments 0
You need to be logged in to leave comments.
Login now