# HG changeset patch # User Pierre-Yves David # Date 1358291521 -3600 # Node ID ecf4f79cc6007c648ea458d0a4c71c3c69583280 # Parent dd3fd3353e233db689c3f4ad4a172010ef0a1be2 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. diff -r dd3fd3353e23 -r ecf4f79cc600 mercurial/localrepo.py --- a/mercurial/localrepo.py Tue Jan 15 23:33:07 2013 +0100 +++ b/mercurial/localrepo.py Wed Jan 16 00:12:01 2013 +0100 @@ -2477,8 +2477,14 @@ cache = branchmap.branchcache(rbranchmap, self[rtiprev].node(), rtiprev) - self._branchcaches[None] = cache - cache.write(self.unfiltered()) + # Try to stick it as low as possible + # filter above served are unlikely to be fetch from a clone + for candidate in ('base', 'immutable', 'served'): + rview = self.filtered(candidate) + if cache.validfor(rview): + self._branchcaches[candidate] = cache + cache.write(rview) + break self.invalidate() return len(self.heads()) + 1 finally: