mercurial/repair.py
changeset 20074 5fc2ae1c631b
parent 18766 64b5562550e2
child 20885 f49d60fa40a5
--- a/mercurial/repair.py	Mon Nov 11 16:40:02 2013 -0800
+++ b/mercurial/repair.py	Mon Nov 11 16:42:49 2013 -0800
@@ -38,16 +38,8 @@
     """return the changesets which will be broken by the truncation"""
     s = set()
     def collectone(revlog):
-        linkgen = (revlog.linkrev(i) for i in revlog)
-        # find the truncation point of the revlog
-        for lrev in linkgen:
-            if lrev >= striprev:
-                break
-        # see if any revision after this point has a linkrev
-        # less than striprev (those will be broken by strip)
-        for lrev in linkgen:
-            if lrev < striprev:
-                s.add(lrev)
+        _, brokenset = revlog.getstrippoint(striprev)
+        s.update([revlog.linkrev(r) for r in brokenset])
 
     collectone(repo.manifest)
     for fname in files: