314 fctx._ancestrycontext = ac |
314 fctx._ancestrycontext = ac |
315 fctx._descendantrev = rev |
315 fctx._descendantrev = rev |
316 return fctx |
316 return fctx |
317 return util.lrucachefunc(makectx) |
317 return util.lrucachefunc(makectx) |
318 |
318 |
319 copy = {} |
319 copy1, copy2, = {}, {} |
320 movewithdir = {} |
320 movewithdir1, movewithdir2 = {}, {} |
321 fullcopy = {} |
321 fullcopy1, fullcopy2 = {}, {} |
322 diverge = {} |
322 diverge = {} |
323 |
323 |
324 repo.ui.debug(" searching for copies back to rev %d\n" % limit) |
324 repo.ui.debug(" searching for copies back to rev %d\n" % limit) |
325 |
325 |
326 addedinm1 = m1.filesnotin(ma) |
326 addedinm1 = m1.filesnotin(ma) |
327 addedinm2 = m2.filesnotin(ma) |
327 addedinm2 = m2.filesnotin(ma) |
328 u1, u2 = _computenonoverlap(repo, c1, c2, addedinm1, addedinm2) |
328 u1, u2 = _computenonoverlap(repo, c1, c2, addedinm1, addedinm2) |
329 |
329 |
330 for f in u1: |
330 for f in u1: |
331 getfctx = setupctx(c1) |
331 getfctx = setupctx(c1) |
332 checkcopies(getfctx, f, m1, m2, ca, limit, diverge, copy, fullcopy) |
332 checkcopies(getfctx, f, m1, m2, ca, limit, diverge, copy1, fullcopy1) |
333 |
333 |
334 for f in u2: |
334 for f in u2: |
335 getfctx = setupctx(c2) |
335 getfctx = setupctx(c2) |
336 checkcopies(getfctx, f, m2, m1, ca, limit, diverge, copy, fullcopy) |
336 checkcopies(getfctx, f, m2, m1, ca, limit, diverge, copy2, fullcopy2) |
|
337 |
|
338 copy = dict(copy1.items() + copy2.items()) |
|
339 movewithdir = dict(movewithdir1.items() + movewithdir2.items()) |
|
340 fullcopy = dict(fullcopy1.items() + fullcopy2.items()) |
337 |
341 |
338 renamedelete = {} |
342 renamedelete = {} |
339 renamedelete2 = set() |
343 renamedelete2 = set() |
340 diverge2 = set() |
344 diverge2 = set() |
341 for of, fl in diverge.items(): |
345 for of, fl in diverge.items(): |