# HG changeset patch # User Pierre-Yves David # Date 1353954132 -3600 # Node ID 6089956e9880fd3078dbe3542777a29af3463a5e # Parent b3af182a1944502b0d5a6dfbae7a625ad0aae0d2 clfilter: ensure cache invalidation is done on the main unfiltered repo The proxy version will not hold any cache for now. But we have to ensure all cache operations are done on the unfiltered version. diff -r b3af182a1944 -r 6089956e9880 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Nov 26 19:26:24 2012 +0100 +++ b/mercurial/localrepo.py Mon Nov 26 19:22:12 2012 +0100 @@ -1075,16 +1075,17 @@ delattr(self.dirstate, k) except AttributeError: pass - delattr(self, 'dirstate') + delattr(self.unfiltered(), 'dirstate') def invalidate(self): + unfiltered = self.unfiltered() # all filecaches are stored on unfiltered for k in self._filecache: # dirstate is invalidated separately in invalidatedirstate() if k == 'dirstate': continue try: - delattr(self, k) + delattr(unfiltered, k) except AttributeError: pass self.invalidatecaches() @@ -1489,6 +1490,7 @@ tr.release() lock.release() + @unfilteredmeth def destroyed(self, newheadnodes=None): '''Inform the repository that nodes have been destroyed. Intended for use by strip and rollback, so there's a common