Mercurial > public > mercurial-scm > hg-stable
diff mercurial/localrepo.py @ 18313:3e4a944c0d04
destroyed: keep the filecache in sync with __dict__ (issue3335) (issue3693) (issue3743)
We need to make sure that if X is in the filecache then it's also in the
filecache owner's __dict__, otherwise it will go out of sync:
repo.X # first access to X, records stat info in
# filecache and updates __dict__
repo._filecache.clear() # removes X from _filecache but it's still in __dict__
repo.invalidate() # iterates over _filecache and removes entries
# from __dict__, but X isn't in _filecache, so
# it's kept in __dict__
repo.X # X is fetched from __dict__, bypassing the filecache
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Wed, 09 Jan 2013 20:37:44 +0200 |
parents | 7331ee72f99c |
children | 3c3855470b19 |
line wrap: on
line diff
--- a/mercurial/localrepo.py Fri Jan 11 00:05:52 2013 +0200 +++ b/mercurial/localrepo.py Wed Jan 09 20:37:44 2013 +0200 @@ -1447,10 +1447,7 @@ # head, refresh the tag cache, then immediately add a new head. # But I think doing it this way is necessary for the "instant # tag cache retrieval" case to work. - self.invalidatecaches() - - # Discard all cache entries to force reloading everything. - self._filecache.clear() + self.invalidate() def walk(self, match, node=None): '''