# HG changeset patch # User Martin von Zweigbergk # Date 2019-06-19 18:12:06 # Node ID f93762f251d2890f683c42a84afd517881641584 # Parent 089f14dd7df33e555574b2c529dfaa94f717cbcf remotefilelog: check if RFL is enabled in getrenamedfn() override In 8a0e03f7baf4 (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. Differential Revision: https://phab.mercurial-scm.org/D6541 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 @@ def uisetup(ui): 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 @@ def onetimeclientsetup(ui): 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):