comparison mercurial/localrepo.py @ 46372:3e91d9978bec

branchmap: update rev-branch-cache incrementally Historically, the revision to branch mapping cache was updated on demand and shared via bundle2 to avoid the cost of rebuilding on first use. Use the new `register_changeset` callback and update rbc directly on every change. Make the transfer of the bundle part redundant, but keep it for the moment to avoid the test churn. Over all, "hg unbundle" for large bundles is less than 1.8% slower for different larger repositories and that seems to a reasonable trade off. Differential Revision: https://phab.mercurial-scm.org/D9781
author Joerg Sonnenberger <joerg@bec.de>
date Fri, 15 Jan 2021 01:58:59 +0100
parents 0903d6b9b1df
children 95054317e172
comparison
equal deleted inserted replaced
46371:0903d6b9b1df 46372:3e91d9978bec
2061 if not self._revbranchcache: 2061 if not self._revbranchcache:
2062 self._revbranchcache = branchmap.revbranchcache(self.unfiltered()) 2062 self._revbranchcache = branchmap.revbranchcache(self.unfiltered())
2063 return self._revbranchcache 2063 return self._revbranchcache
2064 2064
2065 def register_changeset(self, rev, changelogrevision): 2065 def register_changeset(self, rev, changelogrevision):
2066 pass 2066 self.revbranchcache().setdata(rev, changelogrevision)
2067 2067
2068 def branchtip(self, branch, ignoremissing=False): 2068 def branchtip(self, branch, ignoremissing=False):
2069 """return the tip node for a given branch 2069 """return the tip node for a given branch
2070 2070
2071 If ignoremissing is True, then this method will not raise an error. 2071 If ignoremissing is True, then this method will not raise an error.