diff -r d279e4f453c4 -r 43c8f72184f4 mercurial/revset.py --- a/mercurial/revset.py Sun Jun 09 22:18:22 2019 +0900 +++ b/mercurial/revset.py Sun Jun 09 22:23:41 2019 +0900 @@ -1362,8 +1362,12 @@ getargs(x, 0, 0, _("merge takes no arguments")) cl = repo.changelog nullrev = node.nullrev - return subset.filter(lambda r: cl.parentrevs(r)[1] != nullrev, - condrepr='') + def ismerge(r): + try: + return cl.parentrevs(r)[1] != nullrev + except error.WdirUnsupported: + return bool(repo[r].p2()) + return subset.filter(ismerge, condrepr='') @predicate('branchpoint()', safe=True) def branchpoint(repo, subset, x):