# HG changeset patch # User Boris Feld <boris.f...@octobus.net> # Date 1516281665 -3600 # Thu Jan 18 14:21:05 2018 +0100 # Node ID 695dfd0f5d9849a7f0b81e623dbdb1befdca63c9 # Parent c978ffef167e8c5d343c3cca1ebf23f1082c3c09 # EXP-Topic wire-rbc # Available At https://bitbucket.org/octobus/mercurial-devel/ # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 695dfd0f5d98 revbranchcache: add a public function to update the data
We want to exchange more cached data over the wire. To do so, we need a clean way to update the cache on the receiving ends. diff --git a/mercurial/branchmap.py b/mercurial/branchmap.py --- a/mercurial/branchmap.py +++ b/mercurial/branchmap.py @@ -454,6 +454,26 @@ class revbranchcache(object): self._setcachedata(rev, reponode, branchidx) return b, close + def setdata(self, branch, rev, node, close): + """add new data information to the cache""" + if branch in self._namesreverse: + branchidx = self._namesreverse[branch] + else: + branchidx = len(self._names) + self._names.append(branch) + self._namesreverse[branch] = branchidx + if close: + branchidx |= _rbccloseflag + self._setcachedata(rev, node, branchidx) + # If no cache data were readable (non exists, bad permission, etc) + # the cache was bypassing itself by setting: + # + # self.branchinfo = self._branchinfo + # + # Since we now have data in the cache, we need to drop this bypassing. + if 'branchinfo' in vars(self): + del self.branchinfo + def _setcachedata(self, rev, node, branchidx): """Writes the node's branch data to the in-memory cache data.""" if rev == nullrev: _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel