mercurial/localrepo.py
changeset 17714 5210e5a556d9
parent 17675 8575f4a2126e
child 17715 21c503480986
--- 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'''