marmoute created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches.
REVISION SUMMARY We are about to reorganise everything and we document the "old" way to clarify the change that leads to the "new way". REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D9581 AFFECTED FILES mercurial/copies.py CHANGE DETAILS diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -349,14 +349,21 @@ isancestor = cached_is_ancestor(isancestor) all_copies = {} + # iterate over all the "parent" side of copy tracing "edge" for r in revs: + # fetch potential previously computed data for that parent copies = all_copies.pop(r, None) if copies is None: # this is a root copies = {} + + # iterate over all known children to chain the existing data with the + # data from the parent → child edge. for i, c in enumerate(children[r]): p1, p2, changes = revinfo(c) childcopies = {} + + # select the right parent → child edge if r == p1: parent = 1 if changes is not None: @@ -370,6 +377,8 @@ childcopies = { dst: src for dst, src in childcopies.items() if match(dst) } + + # chain the data in the edge with the existing data newcopies = copies if childcopies: newcopies = copies.copy() @@ -390,6 +399,9 @@ # could be avoided. newcopies = copies.copy() newcopies[f] = (c, None) + + # check potential need to combine the data from another parent (for + # that child). See comment below for details. othercopies = all_copies.get(c) if othercopies is None: all_copies[c] = newcopies @@ -416,6 +428,7 @@ copies = _merge_copies_dict(minor, major, isancestor, changes) all_copies[c] = copies + # filter out internal details and return a {dest: source mapping} final_copies = {} for dest, (tt, source) in all_copies[targetrev].items(): if source is not None: To: marmoute, #hg-reviewers Cc: mercurial-patches, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel