--- a/mercurial/branchmap.py Sat Dec 22 02:04:49 2012 +0100
+++ b/mercurial/branchmap.py Thu Dec 20 16:28:43 2012 +0100
@@ -42,17 +42,6 @@
partial = branchcache()
return partial
-def write(repo, cache):
- try:
- f = repo.opener("cache/branchheads", "w", atomictemp=True)
- f.write("%s %s\n" % (hex(cache.tipnode), cache.tiprev))
- for label, nodes in cache.iteritems():
- for node in nodes:
- f.write("%s %s\n" % (hex(node), encoding.fromlocal(label)))
- f.close()
- except (IOError, OSError):
- pass
-
def update(repo, 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
@@ -133,7 +122,7 @@
update(repo, partial, ctxgen)
partial.tipnode = cl.node(catip)
partial.tiprev = catip
- write(repo, partial)
+ partial.write(repo)
# If cacheable tip were lower than actual tip, we need to update the
# cache up to tip. This update (from cacheable to actual tip) is not
# written to disk since it's not cacheable.
@@ -152,3 +141,14 @@
super(branchcache, self).__init__(entries)
self.tipnode = tipnode
self.tiprev = tiprev
+
+ def write(self, repo):
+ try:
+ f = repo.opener("cache/branchheads", "w", atomictemp=True)
+ f.write("%s %s\n" % (hex(self.tipnode), self.tiprev))
+ for label, nodes in self.iteritems():
+ for node in nodes:
+ f.write("%s %s\n" % (hex(node), encoding.fromlocal(label)))
+ f.close()
+ except (IOError, OSError):
+ pass
--- a/mercurial/localrepo.py Sat Dec 22 02:04:49 2012 +0100
+++ b/mercurial/localrepo.py Thu Dec 20 16:28:43 2012 +0100
@@ -1440,7 +1440,7 @@
branchmap.update(self, cache, ctxgen)
cache.tipnode = self.changelog.tip()
cache.tiprev = self.changelog.rev(cache.tipnode)
- branchmap.write(self, cache)
+ cache.write(self)
# Ensure the persistent tag cache is updated. Doing it now
# means that the tag cache only has to worry about destroyed
@@ -2498,7 +2498,7 @@
self[rtiprev].node(),
rtiprev)
self._branchcache = cache
- branchmap.write(self, cache)
+ cache.write(self)
self.invalidate()
return len(self.heads()) + 1
finally: