changeset 16200:9d4a2942a732 stable

dirstate: add filecache support
author Idan Kamara <idankk86@gmail.com>
date Thu, 01 Mar 2012 17:39:58 +0200
parents 8181bd808dc5
children fb7c4c14223f
files mercurial/dirstate.py mercurial/localrepo.py
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/dirstate.py	Thu Mar 01 17:39:58 2012 +0200
+++ b/mercurial/dirstate.py	Thu Mar 01 17:39:58 2012 +0200
@@ -52,6 +52,7 @@
         self._dirtypl = False
         self._lastnormaltime = 0
         self._ui = ui
+        self._filecache = {}
 
     @propertycache
     def _map(self):
--- a/mercurial/localrepo.py	Thu Mar 01 17:39:58 2012 +0200
+++ b/mercurial/localrepo.py	Thu Mar 01 17:39:58 2012 +0200
@@ -901,10 +901,13 @@
         rereads the dirstate. Use dirstate.invalidate() if you want to
         explicitly read the dirstate again (i.e. restoring it to a previous
         known good state).'''
-        try:
+        if 'dirstate' in self.__dict__:
+            for k in self.dirstate._filecache:
+                try:
+                    delattr(self.dirstate, k)
+                except AttributeError:
+                    pass
             delattr(self, 'dirstate')
-        except AttributeError:
-            pass
 
     def invalidate(self):
         for k in self._filecache: