# HG changeset patch # User Gregory Szorc # Date 1539959685 -7200 # Node ID 76d4272bd57b71da774f8580230edcf182989654 # Parent 47c03042cd1d934a8e715f01cd943bd62a3b0609 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 diff -r 47c03042cd1d -r 76d4272bd57b 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(),