diff -r 2c6382772db0 -r 5210e5a556d9 mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Oct 08 09:55:41 2012 -0700 +++ b/mercurial/localrepo.py Mon Sep 03 14:34:19 2012 +0200 @@ -627,8 +627,15 @@ def branchmap(self): '''returns a dictionary {branch: [branchheads]}''' - self.updatebranchcache() - return self._branchcache + if self.changelog.filteredrevs: + # some changeset are excluded we can't use the cache + branchmap = {} + self._updatebranchcache(branchmap, (self[r] for r in self)) + return branchmap + else: + self.updatebranchcache() + return self._branchcache + def _branchtip(self, heads): '''return the tipmost branch head in heads'''