Mercurial > hg-stable
changeset 42115:27475ae67676
copies: extract function for deciding whether to use changeset-centric algos
We'll eventually have a "experimental.copies.read-from=changeset-only"
option too and I don't want to spread the logic for determining if we
should use changeset-centric of filelog-centric algorithms.
Differential Revision: https://phab.mercurial-scm.org/D6163
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 20 Mar 2019 11:42:02 -0700 |
parents | aa84bc48c2f7 |
children | caa067ee21dc |
files | mercurial/copies.py mercurial/scmutil.py |
diffstat | 2 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/copies.py Fri Jan 18 13:13:48 2019 -0800 +++ b/mercurial/copies.py Wed Mar 20 11:42:02 2019 -0700 @@ -160,13 +160,18 @@ mb = b.manifest() return mb.filesnotin(ma, match=match) +def usechangesetcentricalgo(repo): + """Checks if we should use changeset-centric copy algorithms""" + return (repo.ui.config('experimental', 'copies.read-from') == + 'compatibility') + def _committedforwardcopies(a, b, match): """Like _forwardcopies(), but b.rev() cannot be None (working copy)""" # files might have to be traced back to the fctx parent of the last # one-side-only changeset, but not further back than that repo = a._repo - if repo.ui.config('experimental', 'copies.read-from') == 'compatibility': + if usechangesetcentricalgo(repo): return _changesetforwardcopies(a, b, match) debug = repo.ui.debugflag and repo.ui.configbool('devel', 'debug.copies')
--- a/mercurial/scmutil.py Fri Jan 18 13:13:48 2019 -0800 +++ b/mercurial/scmutil.py Wed Mar 20 11:42:02 2019 -0700 @@ -1205,7 +1205,7 @@ wctx.copy(old, new) def getrenamedfn(repo, endrev=None): - if repo.ui.config('experimental', 'copies.read-from') == 'compatibility': + if copiesmod.usechangesetcentricalgo(repo): def getrenamed(fn, rev): ctx = repo[rev] p1copies = ctx.p1copies()