D6541: remotefilelog: check if RFL is enabled in getrenamedfn() override
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Jun 19 18:31:59 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
In 8a0e03f7baf4 <https://phab.mercurial-scm.org/rHG8a0e03f7baf4e2639519ef787324b591bd5d9d82> (remotefilelog: move most setup from onetimesetup() to
uisetup(), 2019-05-01), I said:
All the wrappers moved in this patch check if remotefilelog is enabled
before they change behavior, so it's safe to always wrap.
That was clearly a lie, because getrenamedfn() didn't. That made
e.g. `hg log -T {file_copies}` unbearably slow. This patch fixes that.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D6541
AFFECTED FILES
hgext/remotefilelog/__init__.py
CHANGE DETAILS
diff --git a/hgext/remotefilelog/__init__.py b/hgext/remotefilelog/__init__.py
--- a/hgext/remotefilelog/__init__.py
+++ b/hgext/remotefilelog/__init__.py
@@ -316,7 +316,7 @@
scmutil.fileprefetchhooks.add('remotefilelog', _fileprefetchhook)
# disappointing hacks below
- scmutil.getrenamedfn = getrenamedfn
+ extensions.wrapfunction(scmutil, 'getrenamedfn', getrenamedfn)
extensions.wrapfunction(revset, 'filelog', filelogrevset)
revset.symbols['filelog'] = revset.filelog
extensions.wrapfunction(cmdutil, 'walkfilerevs', walkfilerevs)
@@ -635,7 +635,10 @@
return node
extensions.wrapfunction(changelog.changelog, 'add', changelogadd)
-def getrenamedfn(repo, endrev=None):
+def getrenamedfn(orig, repo, endrev=None):
+ if not isenabled(repo):
+ return orig(repo, endrev)
+
rcache = {}
def getrenamed(fn, rev):
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list