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