diff mercurial/localrepo.py @ 17324:9f94358f9f93 stable

localrepo: clear the filecache on _rollback() and destroyed() This restores the old behaviour of clearing the filecache when the repo is destroyed but combines it with also clearing it on _rollback. Before, we tried to only call it through _rollback but that ruined callers of destroyed. Doing it on both code paths covers destroyed being called from somewhere else, e.g. strip.
author Idan Kamara <idankk86@gmail.com>
date Sat, 28 Jul 2012 22:40:30 +0300
parents 7d2967de2c04
children 935831597e16
line wrap: on
line diff
--- a/mercurial/localrepo.py	Wed Aug 01 00:20:10 2012 +0200
+++ b/mercurial/localrepo.py	Sat Jul 28 22:40:30 2012 +0300
@@ -1000,6 +1000,9 @@
                         self.sjoin('phaseroots'))
         self.invalidate()
 
+        # Discard all cache entries to force reloading everything.
+        self._filecache.clear()
+
         parentgone = (parents[0] not in self.changelog.nodemap or
                       parents[1] not in self.changelog.nodemap)
         if parentgone:
@@ -1067,9 +1070,6 @@
                 pass
         self.invalidatecaches()
 
-        # Discard all cache entries to force reloading everything.
-        self._filecache.clear()
-
     def _lock(self, lockname, wait, releasefn, acquirefn, desc):
         try:
             l = lock.lock(lockname, 0, releasefn, desc=desc)
@@ -1503,6 +1503,9 @@
         # tag cache retrieval" case to work.
         self.invalidatecaches()
 
+        # Discard all cache entries to force reloading everything.
+        self._filecache.clear()
+
     def walk(self, match, node=None):
         '''
         walk recursively through the directory tree or a given