equal
deleted
inserted
replaced
227 if create: |
227 if create: |
228 self._writerequirements() |
228 self._writerequirements() |
229 |
229 |
230 |
230 |
231 self._branchcache = None |
231 self._branchcache = None |
232 self._branchcachetip = None |
|
233 self.filterpats = {} |
232 self.filterpats = {} |
234 self._datafilters = {} |
233 self._datafilters = {} |
235 self._transref = self._lockref = self._wlockref = None |
234 self._transref = self._lockref = self._wlockref = None |
236 |
235 |
237 # A cache for various files under .hg/ that tracks file changes, |
236 # A cache for various files under .hg/ that tracks file changes, |
977 if '_tagscache' in vars(self): |
976 if '_tagscache' in vars(self): |
978 # can't use delattr on proxy |
977 # can't use delattr on proxy |
979 del self.__dict__['_tagscache'] |
978 del self.__dict__['_tagscache'] |
980 |
979 |
981 self.unfiltered()._branchcache = None # in UTF-8 |
980 self.unfiltered()._branchcache = None # in UTF-8 |
982 self.unfiltered()._branchcachetip = None |
|
983 self.invalidatevolatilesets() |
981 self.invalidatevolatilesets() |
984 |
982 |
985 def invalidatevolatilesets(self): |
983 def invalidatevolatilesets(self): |
986 self.filteredrevcache.clear() |
984 self.filteredrevcache.clear() |
987 obsolete.clearobscaches(self) |
985 obsolete.clearobscaches(self) |
1438 if newheadnodes: |
1436 if newheadnodes: |
1439 tiprev = len(self) - 1 |
1437 tiprev = len(self) - 1 |
1440 ctxgen = (self[node] for node in newheadnodes |
1438 ctxgen = (self[node] for node in newheadnodes |
1441 if self.changelog.hasnode(node)) |
1439 if self.changelog.hasnode(node)) |
1442 branchmap.update(self, self._branchcache, ctxgen) |
1440 branchmap.update(self, self._branchcache, ctxgen) |
1443 branchmap.write(self, self._branchcache, self.changelog.tip(), |
1441 self._branchcache.tipnode = self.changelog.tip() |
|
1442 branchmap.write(self, self._branchcache, self._branchcache.tipnode, |
1444 tiprev) |
1443 tiprev) |
1445 |
1444 |
1446 # Ensure the persistent tag cache is updated. Doing it now |
1445 # Ensure the persistent tag cache is updated. Doing it now |
1447 # means that the tag cache only has to worry about destroyed |
1446 # means that the tag cache only has to worry about destroyed |
1448 # heads immediately after a strip/rollback. That in turn |
1447 # heads immediately after a strip/rollback. That in turn |
2493 rbheads.extend(bheads) |
2492 rbheads.extend(bheads) |
2494 |
2493 |
2495 if rbheads: |
2494 if rbheads: |
2496 rtiprev = max((int(self.changelog.rev(node)) |
2495 rtiprev = max((int(self.changelog.rev(node)) |
2497 for node in rbheads)) |
2496 for node in rbheads)) |
2498 self._branchcache = branchmap.branchcache(rbranchmap) |
2497 cache = branchmap.branchcache(rbranchmap, |
2499 rtipnode = self._branchcachetip = self[rtiprev].node() |
2498 self[rtiprev].node()) |
2500 branchmap.write(self, self._branchcache, rtipnode, rtiprev) |
2499 self._branchcache = cache |
|
2500 branchmap.write(self, cache, cache.tipnode, rtiprev) |
2501 self.invalidate() |
2501 self.invalidate() |
2502 return len(self.heads()) + 1 |
2502 return len(self.heads()) + 1 |
2503 finally: |
2503 finally: |
2504 lock.release() |
2504 lock.release() |
2505 |
2505 |