Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 18397:ecf4f79cc600
stream_in: write the remote branchcache for a usage as wide as possible
Writing cache for unfiltered repo only is barely useful, Most repo user are now
at least use the `hidden` filter. This changeset now assigns the remote cache
for a filter as low as possible for a wider reuse as possible.
author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
---|---|
date | Wed, 16 Jan 2013 00:12:01 +0100 |
parents | dd3fd3353e23 |
children | f009804e2a43 |
comparison
equal
deleted
inserted
replaced
18396:dd3fd3353e23 | 18397:ecf4f79cc600 |
---|---|
2475 rtiprev = max((int(self.changelog.rev(node)) | 2475 rtiprev = max((int(self.changelog.rev(node)) |
2476 for node in rbheads)) | 2476 for node in rbheads)) |
2477 cache = branchmap.branchcache(rbranchmap, | 2477 cache = branchmap.branchcache(rbranchmap, |
2478 self[rtiprev].node(), | 2478 self[rtiprev].node(), |
2479 rtiprev) | 2479 rtiprev) |
2480 self._branchcaches[None] = cache | 2480 # Try to stick it as low as possible |
2481 cache.write(self.unfiltered()) | 2481 # filter above served are unlikely to be fetch from a clone |
2482 for candidate in ('base', 'immutable', 'served'): | |
2483 rview = self.filtered(candidate) | |
2484 if cache.validfor(rview): | |
2485 self._branchcaches[candidate] = cache | |
2486 cache.write(rview) | |
2487 break | |
2482 self.invalidate() | 2488 self.invalidate() |
2483 return len(self.heads()) + 1 | 2489 return len(self.heads()) + 1 |
2484 finally: | 2490 finally: |
2485 lock.release() | 2491 lock.release() |
2486 | 2492 |