mercurial/phases.py
changeset 18983 31bcc5112191
parent 18220 767d1c602c8b
child 19951 d51c4d85ec23
--- a/mercurial/phases.py	Mon Apr 15 01:59:11 2013 +0200
+++ b/mercurial/phases.py	Mon Apr 15 17:10:58 2013 +0200
@@ -266,7 +266,15 @@
                 filtered = True
         if filtered:
             self.dirty = True
-            self._phaserevs = None
+        # filterunknown is called by repo.destroyed, we may have no changes in
+        # root but phaserevs contents is certainly invalide (or at least we
+        # have not proper way to check that. related to issue 3858.
+        #
+        # The other caller is __init__ that have no _phaserevs initialized
+        # anyway. If this change we should consider adding a dedicated
+        # "destroyed" function to phasecache or a proper cache key mechanisme
+        # (see branchmap one)
+        self._phaserevs = None
 
 def advanceboundary(repo, targetphase, nodes):
     """Add nodes to a phase changing other nodes phases if necessary.