clfilter: ensure `branchcache` logic runs unfiltered
The current branchcache construction is not aware of filtering. We keep
the status quo, ensuring that the branch cache logic is computed as
before: without any filtering.
--- a/mercurial/localrepo.py Mon Nov 26 19:11:13 2012 +0100
+++ b/mercurial/localrepo.py Mon Nov 26 19:25:44 2012 +0100
@@ -613,6 +613,7 @@
return partial
+ @unfilteredmeth # Until we get a smarter cache management
def updatebranchcache(self):
tip = self.changelog.tip()
if self._branchcache is not None and self._branchcachetip == tip:
@@ -665,6 +666,7 @@
bt[bn] = self._branchtip(heads)
return bt
+ @unfilteredmeth # Until we get a smarter cache management
def _readbranchcache(self):
partial = {}
try:
@@ -697,6 +699,7 @@
partial, last, lrev = {}, nullid, nullrev
return partial, last, lrev
+ @unfilteredmeth # Until we get a smarter cache management
def _writebranchcache(self, branches, tip, tiprev):
try:
f = self.opener("cache/branchheads", "w", atomictemp=True)
@@ -708,6 +711,7 @@
except (IOError, OSError):
pass
+ @unfilteredmeth # Until we get a smarter cache management
def _updatebranchcache(self, partial, ctxgen):
"""Given a branchhead cache, partial, that may have extra nodes or be
missing heads, and a generator of nodes that are at least a superset of
@@ -1051,8 +1055,8 @@
delcache('_tagscache')
- self._branchcache = None # in UTF-8
- self._branchcachetip = None
+ self.unfiltered()._branchcache = None # in UTF-8
+ self.unfiltered()._branchcachetip = None
obsolete.clearobscaches(self)
def invalidatedirstate(self):