diff -r f8a13f061a8a -r 6fb3b8c61775 mercurial/localrepo.py --- a/mercurial/localrepo.py Thu Dec 20 14:45:17 2012 +0100 +++ b/mercurial/localrepo.py Sat Dec 22 01:34:23 2012 +0100 @@ -2492,12 +2492,12 @@ for bheads in rbranchmap.itervalues(): rbheads.extend(bheads) - self.branchcache = rbranchmap if rbheads: rtiprev = max((int(self.changelog.rev(node)) for node in rbheads)) - branchmap.write(self, self.branchcache, - self[rtiprev].node(), rtiprev) + self._branchcache = rbranchmap + rtipnode = self._branchcachetip = self[rtiprev].node() + branchmap.write(self, self._branchcache, rtipnode, rtiprev) self.invalidate() return len(self.heads()) + 1 finally: