--- 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.