diff -r 04e1596d5dbd -r f52e4ca93529 mercurial/revset.py --- a/mercurial/revset.py Tue Mar 25 14:10:01 2014 -0700 +++ b/mercurial/revset.py Mon Mar 31 16:03:34 2014 -0700 @@ -1480,8 +1480,8 @@ """``roots(set)`` Changesets in set with no parent changeset in set. """ - s = getset(repo, baseset(repo.changelog), x).set() - subset = baseset([r for r in subset if r in s]) + s = getset(repo, spanset(repo), x).set() + subset = baseset([r for r in s if r in subset.set()]) cs = _children(repo, subset, s) return subset - cs