diff -r 6aa7dcae6bd8 -r 47fd57f650e5 mercurial/revset.py --- a/mercurial/revset.py Thu Jan 30 16:03:18 2014 -0800 +++ b/mercurial/revset.py Thu Jan 30 16:47:29 2014 -0800 @@ -992,7 +992,7 @@ # i18n: "merge" is a keyword getargs(x, 0, 0, _("merge takes no arguments")) cl = repo.changelog - return baseset([r for r in subset if cl.parentrevs(r)[1] != -1]) + return lazyset(subset, lambda r: cl.parentrevs(r)[1] != -1) def branchpoint(repo, subset, x): """``branchpoint()``