diff -r 000d122071b5 -r b3b868113d24 mercurial/localrepo.py --- a/mercurial/localrepo.py Thu Dec 07 14:15:11 2006 -0200 +++ b/mercurial/localrepo.py Thu Dec 07 14:35:43 2006 -0200 @@ -312,12 +312,7 @@ self.nodetagscache.setdefault(n, []).append(t) return self.nodetagscache.get(node, []) - def branchtags(self): - if self.branchcache != None: - return self.branchcache - - self.branchcache = {} # avoid recursion in changectx - + def _branchtags(self): partial, last, lrev = self._readbranchcache() tiprev = self.changelog.count() - 1 @@ -325,6 +320,15 @@ self._updatebranchcache(partial, lrev+1, tiprev+1) self._writebranchcache(partial, self.changelog.tip(), tiprev) + return partial + + def branchtags(self): + if self.branchcache is not None: + return self.branchcache + + self.branchcache = {} # avoid recursion in changectx + partial = self._branchtags() + # the branch cache is stored on disk as UTF-8, but in the local # charset internally for k, v in partial.items():