Mercurial > hg
comparison mercurial/copies.py @ 32563:e1e1cc97e05a
copies: remove msrc and mdst parameters
This function already has lots of parameters. And we can get manifests from
contexts. So let's get msrc and mdst parameters from srcctx and dstctx.
author | Stanislau Hlebik <stash@fb.com> |
---|---|
date | Mon, 29 May 2017 05:57:25 -0700 |
parents | e4d1bc14e39a |
children | 6966e42f833a |
comparison
equal
deleted
inserted
replaced
32562:e4d1bc14e39a | 32563:e1e1cc97e05a |
---|---|
412 u1u, u2u = _computenonoverlap(repo, c1, c2, m1.filesnotin(mta), | 412 u1u, u2u = _computenonoverlap(repo, c1, c2, m1.filesnotin(mta), |
413 m2.filesnotin(mta), | 413 m2.filesnotin(mta), |
414 baselabel='topological common ancestor') | 414 baselabel='topological common ancestor') |
415 | 415 |
416 for f in u1u: | 416 for f in u1u: |
417 _checkcopies(c1, c2, f, m1, m2, base, tca, dirtyc1, limit, data1) | 417 _checkcopies(c1, c2, f, base, tca, dirtyc1, limit, data1) |
418 | 418 |
419 for f in u2u: | 419 for f in u2u: |
420 _checkcopies(c2, c1, f, m2, m1, base, tca, dirtyc2, limit, data2) | 420 _checkcopies(c2, c1, f, base, tca, dirtyc2, limit, data2) |
421 | 421 |
422 copy = dict(data1['copy'].items() + data2['copy'].items()) | 422 copy = dict(data1['copy'].items() + data2['copy'].items()) |
423 fullcopy = dict(data1['fullcopy'].items() + data2['fullcopy'].items()) | 423 fullcopy = dict(data1['fullcopy'].items() + data2['fullcopy'].items()) |
424 | 424 |
425 if dirtyc1: | 425 if dirtyc1: |
460 'incomplete': {}, | 460 'incomplete': {}, |
461 'diverge': bothdiverge, | 461 'diverge': bothdiverge, |
462 'incompletediverge': bothincompletediverge | 462 'incompletediverge': bothincompletediverge |
463 } | 463 } |
464 for f in bothnew: | 464 for f in bothnew: |
465 _checkcopies(c1, c2, f, m1, m2, base, tca, dirtyc1, limit, both1) | 465 _checkcopies(c1, c2, f, base, tca, dirtyc1, limit, both1) |
466 _checkcopies(c2, c1, f, m2, m1, base, tca, dirtyc2, limit, both2) | 466 _checkcopies(c2, c1, f, base, tca, dirtyc2, limit, both2) |
467 if dirtyc1: | 467 if dirtyc1: |
468 # incomplete copies may only be found on the "dirty" side for bothnew | 468 # incomplete copies may only be found on the "dirty" side for bothnew |
469 assert not both2['incomplete'] | 469 assert not both2['incomplete'] |
470 remainder = _combinecopies({}, both1['incomplete'], copy, bothdiverge, | 470 remainder = _combinecopies({}, both1['incomplete'], copy, bothdiverge, |
471 bothincompletediverge) | 471 bothincompletediverge) |
596 elif f1r == f2r or f1r < limit or f2r < limit: | 596 elif f1r == f2r or f1r < limit or f2r < limit: |
597 return False # copy no longer relevant | 597 return False # copy no longer relevant |
598 except StopIteration: | 598 except StopIteration: |
599 return False | 599 return False |
600 | 600 |
601 def _checkcopies(srcctx, dstctx, f, msrc, mdst, base, tca, remotebase, | 601 def _checkcopies(srcctx, dstctx, f, base, tca, remotebase, limit, data): |
602 limit, data): | |
603 """ | 602 """ |
604 check possible copies of f from msrc to mdst | 603 check possible copies of f from msrc to mdst |
605 | 604 |
606 srcctx = starting context for f in msrc | 605 srcctx = starting context for f in msrc |
607 dstctx = destination context for f in mdst | 606 dstctx = destination context for f in mdst |
608 f = the filename to check (as in msrc) | 607 f = the filename to check (as in msrc) |
609 msrc = the source manifest | |
610 mdst = the destination manifest | |
611 base = the changectx used as a merge base | 608 base = the changectx used as a merge base |
612 tca = topological common ancestor for graft-like scenarios | 609 tca = topological common ancestor for graft-like scenarios |
613 remotebase = True if base is outside tca::srcctx, False otherwise | 610 remotebase = True if base is outside tca::srcctx, False otherwise |
614 limit = the rev number to not search beyond | 611 limit = the rev number to not search beyond |
615 data = dictionary of dictionary to store copy data. (see mergecopies) | 612 data = dictionary of dictionary to store copy data. (see mergecopies) |
618 irrelevant revisions will not be limited | 615 irrelevant revisions will not be limited |
619 there is no easy way to make this algorithm stop in a guaranteed way | 616 there is no easy way to make this algorithm stop in a guaranteed way |
620 once it "goes behind a certain revision". | 617 once it "goes behind a certain revision". |
621 """ | 618 """ |
622 | 619 |
620 msrc = srcctx.manifest() | |
621 mdst = dstctx.manifest() | |
623 mb = base.manifest() | 622 mb = base.manifest() |
624 mta = tca.manifest() | 623 mta = tca.manifest() |
625 # Might be true if this call is about finding backward renames, | 624 # Might be true if this call is about finding backward renames, |
626 # This happens in the case of grafts because the DAG is then rotated. | 625 # This happens in the case of grafts because the DAG is then rotated. |
627 # If the file exists in both the base and the source, we are not looking | 626 # If the file exists in both the base and the source, we are not looking |