diff -r 46ed5226503a -r b9026ba002f6 mercurial/branchmap.py --- a/mercurial/branchmap.py Tue Jan 01 21:27:13 2013 +0100 +++ b/mercurial/branchmap.py Mon Dec 24 03:21:15 2012 +0100 @@ -59,9 +59,9 @@ def updatecache(repo): - repo = repo.unfiltered() # Until we get a smarter cache management cl = repo.changelog - partial = repo._branchcache + filtername = repo.filtername + partial = repo._branchcaches.get(filtername) if partial is None or not partial.validfor(repo): partial = read(repo) @@ -81,7 +81,7 @@ if partial.tiprev < tiprev: ctxgen = (repo[r] for r in cl.revs(partial.tiprev + 1, tiprev)) partial.update(repo, ctxgen) - repo._branchcache = partial + repo._branchcaches[repo.filtername] = partial class branchcache(dict): """A dict like object that hold branches heads cache"""