diff -r 5b2f331d0a33 -r 6626d12e7a85 mercurial/repair.py --- a/mercurial/repair.py Tue Jul 25 22:53:44 2017 -0400 +++ b/mercurial/repair.py Tue Aug 08 17:25:38 2017 -0700 @@ -67,16 +67,20 @@ return sorted(files) +def _collectrevlog(revlog, striprev): + _, brokenset = revlog.getstrippoint(striprev) + return [revlog.linkrev(r) for r in brokenset] + +def _collectmanifest(repo, striprev): + return _collectrevlog(repo.manifestlog._revlog, striprev) + def _collectbrokencsets(repo, files, striprev): """return the changesets which will be broken by the truncation""" s = set() - def collectone(revlog): - _, brokenset = revlog.getstrippoint(striprev) - s.update([revlog.linkrev(r) for r in brokenset]) - collectone(repo.manifestlog._revlog) + s.update(_collectmanifest(repo, striprev)) for fname in files: - collectone(repo.file(fname)) + s.update(_collectrevlog(repo.file(fname), striprev)) return s