diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -1242,7 +1242,7 @@ def parents(repo, subset, x): for r in getset(repo, spanset(repo), x): ps.update(cl.parentrevs(r)) ps -= set([node.nullrev]) - return baseset(ps) & subset + return subset & ps def parentspec(repo, subset, x, n): """``set^0`` diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -567,10 +567,10 @@ test subtracting something from an addse test intersecting something with an addset $ log 'parents(outgoing() or removes(a))' - 8 1 4 5 + 8 check that conversion to only works $ try --optimize '::3 - ::1'