D6162: getrenamedfn: get copy data from context object if configured
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Mar 20 19:03:28 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
The function returned from getrenamedfn() calls
filelog.renamed(). That won't work when storing copy metadata in the
changeset.
I'm just switched to a simple implementation here. We may or may not
need to optimize it later, possibly by optimizing the callers.
No more tests fail with "--extra-config-opt
experimental.copies.read-from=compatibility)" than they did before
this patch.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6162
AFFECTED FILES
mercurial/scmutil.py
CHANGE DETAILS
diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py
--- a/mercurial/scmutil.py
+++ b/mercurial/scmutil.py
@@ -1205,6 +1205,18 @@
wctx.copy(old, new)
def getrenamedfn(repo, endrev=None):
+ if repo.ui.config('experimental', 'copies.read-from') == 'compatibility':
+ def getrenamed(fn, rev):
+ ctx = repo[rev]
+ p1copies = ctx.p1copies()
+ if fn in p1copies:
+ return p1copies[fn]
+ p2copies = ctx.p2copies()
+ if fn in p2copies:
+ return p2copies[fn]
+ return None
+ return getrenamed
+
rcache = {}
if endrev is None:
endrev = len(repo)
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list