branchmap: avoid changelog and attribute lookups in replacecache()
authorGregory Szorc <gregory.szorc@gmail.com>
Fri, 19 Oct 2018 16:34:45 +0200
changeset 40375 76d4272bd57b
parent 40374 47c03042cd1d
child 40376 801c8ca60af5
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
mercurial/branchmap.py
--- 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(),