diff -r c3372529247f -r 34f577007ffe mercurial/revset.py --- a/mercurial/revset.py Wed Apr 13 07:40:24 2011 +0530 +++ b/mercurial/revset.py Wed Apr 13 12:30:41 2011 -0500 @@ -156,9 +156,10 @@ return getset(repo, getset(repo, subset, x), y) def orset(repo, subset, x, y): - s = set(getset(repo, subset, x)) - s |= set(getset(repo, [r for r in subset if r not in s], y)) - return [r for r in subset if r in s] + xl = getset(repo, subset, x) + s = set(xl) + yl = getset(repo, [r for r in subset if r not in s], y) + return xl + yl def notset(repo, subset, x): s = set(getset(repo, subset, x))