mercurial/branchmap.py
changeset 22356 3c8fb24334e9
parent 22059 d5cef58d8ec8
child 22357 9c3c3dc14a65
--- 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]