# HG changeset patch # User Idan Kamara # Date 2012-03-01 15:39:58 # Node ID 9d4a2942a732ee2d8453d1fc4a81ae5683247762 # Parent 8181bd808dc56e25dd2e49057bec128a05faae45 dirstate: add filecache support diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -52,6 +52,7 @@ class dirstate(object): self._dirtypl = False self._lastnormaltime = 0 self._ui = ui + self._filecache = {} @propertycache def _map(self): diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -901,10 +901,13 @@ class localrepository(repo.repository): 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: