localrepo: write the phasecache when destroying nodes
authorIdan Kamara <idankk86@gmail.com>
Fri, 11 Jan 2013 00:05:52 +0200
changeset 18312 7331ee72f99c
parent 18311 084074648755
child 18313 3e4a944c0d04
localrepo: write the phasecache when destroying nodes
mercurial/localrepo.py
--- a/mercurial/localrepo.py	Sat Jan 05 16:50:12 2013 +0200
+++ b/mercurial/localrepo.py	Fri Jan 11 00:05:52 2013 +0200
@@ -1396,6 +1396,12 @@
         # revisions missing because the cache is out-of-date.
         branchmap.updatecache(self)
 
+        # When using the same lock to commit and strip, the phasecache is left
+        # dirty after committing. Then when we strip, the repo is invalidated,
+        # causing those changes to disappear.
+        if '_phasecache' in vars(self):
+            self._phasecache.write()
+
     @unfilteredmethod
     def destroyed(self, newheadnodes=None):
         '''Inform the repository that nodes have been destroyed.