[PATCH 03 of 10 v2] localrepo: update the branchmap when destroying nodes

Idan Kamara idankk86 at gmail.com
Thu Jan 10 16:10:50 CST 2013


# HG changeset patch
# User Idan Kamara <idankk86 at gmail.com>
# Date 1357397412 -7200
# Node ID f995192c3e645becb51669cbad6e543f1f876199
# Parent  10c413247f0d3f179f8daa2404dc18195f181565
localrepo: update the branchmap when destroying nodes

This was previously called directly during strip. Moving it to destroying
also means that it'll be called through _rollback, which seems harmless.

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1391,7 +1391,10 @@
         changes to stay in memory (waiting for the next unlock), or vanish
         completely.
         '''
-        pass
+        # It simplifies the logic around updating the branchheads cache if we
+        # only have to consider the effect of the stripped revisions and not
+        # revisions missing because the cache is out-of-date.
+        branchmap.updatecache(self)
 
     @unfilteredmethod
     def destroyed(self, newheadnodes=None):
diff --git a/mercurial/repair.py b/mercurial/repair.py
--- a/mercurial/repair.py
+++ b/mercurial/repair.py
@@ -6,7 +6,7 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
-from mercurial import changegroup, branchmap
+from mercurial import changegroup
 from mercurial.node import short
 from mercurial.i18n import _
 import os
@@ -57,10 +57,6 @@
 
 def strip(ui, repo, nodelist, backup="all", topic='backup'):
     repo = repo.unfiltered()
-    # It simplifies the logic around updating the branchheads cache if we only
-    # have to consider the effect of the stripped revisions and not revisions
-    # missing because the cache is out-of-date.
-    branchmap.updatecache(repo)
     repo.destroying()
 
     cl = repo.changelog


More information about the Mercurial-devel mailing list