diff -r 25b5787e8dde -r 0c06875e7755 mercurial/scmutil.py --- a/mercurial/scmutil.py Sun Oct 15 20:32:10 2017 +0530 +++ b/mercurial/scmutil.py Mon Oct 16 15:35:08 2017 +0200 @@ -1242,20 +1242,11 @@ # Compute the bounds of new revisions' range, excluding obsoletes. unfi = repo.unfiltered() - minrev, maxrev = None, None - newrevs.sort() - for r in newrevs: - if not unfi[r].obsolete(): - minrev = repo[r] - break - for r in reversed(newrevs): - if not unfi[r].obsolete(): - maxrev = repo[r] - break - - if minrev is None or maxrev is None: + revs = unfi.revs('%ld and not obsolete()', newrevs) + if not revs: # Got only obsoletes. return + minrev, maxrev = repo[revs.min()], repo[revs.max()] if minrev == maxrev: revrange = minrev