diff -r 98c867ac1330 -r a39fe76c4c65 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Oct 08 20:02:20 2012 +0200 +++ b/mercurial/localrepo.py Mon Oct 08 19:34:04 2012 +0200 @@ -18,7 +18,18 @@ propertycache = util.propertycache filecache = scmutil.filecache -class storecache(filecache): +class repofilecache(filecache): + """All filecache usage on repo are done for logic that should be unfiltered + """ + + def __get__(self, repo, type=None): + return super(repofilecache, self).__get__(repo.unfiltered(), type) + def __set__(self, repo, value): + return super(repofilecache, self).__set__(repo.unfiltered(), value) + def __delete__(self, repo): + return super(repofilecache, self).__delete__(repo.unfiltered()) + +class storecache(repofilecache): """filecache for files in the store""" def join(self, obj, fname): return obj.sjoin(fname) @@ -292,11 +303,11 @@ Intended to be ovewritten by filtered repo.""" return self - @filecache('bookmarks') + @repofilecache('bookmarks') def _bookmarks(self): return bookmarks.bmstore(self) - @filecache('bookmarks.current') + @repofilecache('bookmarks.current') def _bookmarkcurrent(self): return bookmarks.readcurrent(self) @@ -355,7 +366,7 @@ def manifest(self): return manifest.manifest(self.sopener) - @filecache('dirstate') + @repofilecache('dirstate') def dirstate(self): warned = [0] def validate(node):