1073 for k in self.dirstate._filecache: |
1073 for k in self.dirstate._filecache: |
1074 try: |
1074 try: |
1075 delattr(self.dirstate, k) |
1075 delattr(self.dirstate, k) |
1076 except AttributeError: |
1076 except AttributeError: |
1077 pass |
1077 pass |
1078 delattr(self, 'dirstate') |
1078 delattr(self.unfiltered(), 'dirstate') |
1079 |
1079 |
1080 def invalidate(self): |
1080 def invalidate(self): |
|
1081 unfiltered = self.unfiltered() # all filecaches are stored on unfiltered |
1081 for k in self._filecache: |
1082 for k in self._filecache: |
1082 # dirstate is invalidated separately in invalidatedirstate() |
1083 # dirstate is invalidated separately in invalidatedirstate() |
1083 if k == 'dirstate': |
1084 if k == 'dirstate': |
1084 continue |
1085 continue |
1085 |
1086 |
1086 try: |
1087 try: |
1087 delattr(self, k) |
1088 delattr(unfiltered, k) |
1088 except AttributeError: |
1089 except AttributeError: |
1089 pass |
1090 pass |
1090 self.invalidatecaches() |
1091 self.invalidatecaches() |
1091 |
1092 |
1092 def _lock(self, lockname, wait, releasefn, acquirefn, desc): |
1093 def _lock(self, lockname, wait, releasefn, acquirefn, desc): |
1487 finally: |
1488 finally: |
1488 if tr: |
1489 if tr: |
1489 tr.release() |
1490 tr.release() |
1490 lock.release() |
1491 lock.release() |
1491 |
1492 |
|
1493 @unfilteredmeth |
1492 def destroyed(self, newheadnodes=None): |
1494 def destroyed(self, newheadnodes=None): |
1493 '''Inform the repository that nodes have been destroyed. |
1495 '''Inform the repository that nodes have been destroyed. |
1494 Intended for use by strip and rollback, so there's a common |
1496 Intended for use by strip and rollback, so there's a common |
1495 place for anything that has to be done after destroying history. |
1497 place for anything that has to be done after destroying history. |
1496 |
1498 |