Mercurial > hg
changeset 32331:8fb5f452e69c
obscheckhead: skip context creation to test phase
On repository with many many heads, this is called often enough to show an
overhead to appears in some profile. So we skip the 'changectx' creation to test
the node phases.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 19 May 2017 12:35:14 +0200 |
parents | ab5f5429e3d2 |
children | 7aa4a4cf0dde |
files | mercurial/discovery.py |
diffstat | 1 files changed, 2 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/discovery.py Fri May 19 02:44:30 2017 +0200 +++ b/mercurial/discovery.py Fri May 19 12:35:14 2017 +0200 @@ -431,6 +431,7 @@ repo = pushop.repo unfi = repo.unfiltered() tonode = unfi.changelog.node + torev = unfi.changelog.rev public = phases.public getphase = unfi._phasecache.phase ispublic = (lambda r: getphase(unfi, r) == public) @@ -460,8 +461,7 @@ while localcandidate: nh = localcandidate.pop() # run this check early to skip the evaluation of the whole branch - if (nh in futurecommon - or unfi[nh].phase() <= public): + if (nh in futurecommon or ispublic(torev(nh))): newhs.add(nh) continue