--- a/mercurial/branchmap.py Sat Aug 30 11:39:15 2014 +0200
+++ b/mercurial/branchmap.py Sat Aug 30 12:20:50 2014 +0200
@@ -252,15 +252,11 @@
newheadrevs.sort()
bheadset.update(newheadrevs)
- # This loop prunes out two kinds of heads - heads that are
- # superseded by a head in newheadrevs, and newheadrevs that are not
- # heads because an existing head is their descendant.
- while newheadrevs:
- latest = newheadrevs.pop()
- if latest not in bheadset:
- continue
- ancestors = set(cl.ancestors([latest], min(bheadset)))
- bheadset -= ancestors
+ # This prunes out two kinds of heads - heads that are superseded by
+ # a head in newheadrevs, and newheadrevs that are not heads because
+ # an existing head is their descendant.
+ ancestors = set(cl.ancestors(newheadrevs, min(bheadset)))
+ bheadset -= ancestors
bheadrevs = sorted(bheadset)
self[branch] = [cl.node(rev) for rev in bheadrevs]
tiprev = bheadrevs[-1]