diff -r 018f638ad88e -r 4dd292cec3ad mercurial/revset.py --- a/mercurial/revset.py Tue May 23 01:08:19 2017 +0530 +++ b/mercurial/revset.py Tue May 23 01:22:33 2017 +0530 @@ -75,9 +75,14 @@ if current not in seen: seen.add(current) yield current - for parent in cl.parentrevs(current)[:cut]: - if parent != node.nullrev: - heapq.heappush(h, -parent) + try: + for parent in cl.parentrevs(current)[:cut]: + if parent != node.nullrev: + heapq.heappush(h, -parent) + except error.WdirUnsupported: + for parent in repo[current].parents()[:cut]: + if parent.rev() != node.nullrev: + heapq.heappush(h, -parent.rev()) return generatorset(iterate(), iterasc=False)