branchmap: avoid changelog and attribute lookups in replacecache()
This should make things faster. I'm not sure which operations would benefit
from it though. Maybe branchmap application on clone?
Differential Revision: https://phab.mercurial-scm.org/D5162
--- a/mercurial/branchmap.py Fri Oct 19 16:16:17 2018 +0200
+++ b/mercurial/branchmap.py Fri Oct 19 16:34:45 2018 +0200
@@ -130,18 +130,21 @@
This is likely only called during clone with a branch map from a remote.
"""
+ cl = repo.changelog
+ clrev = cl.rev
+ clbranchinfo = cl.branchinfo
rbheads = []
closed = []
for bheads in bm.itervalues():
rbheads.extend(bheads)
for h in bheads:
- r = repo.changelog.rev(h)
- b, c = repo.changelog.branchinfo(r)
+ r = clrev(h)
+ b, c = clbranchinfo(r)
if c:
closed.append(h)
if rbheads:
- rtiprev = max((int(repo.changelog.rev(node))
+ rtiprev = max((int(clrev(node))
for node in rbheads))
cache = branchcache(bm,
repo[rtiprev].node(),