diff -r 572cd30eaffb -r cb5134f2318a mercurial/revset.py --- a/mercurial/revset.py Tue Sep 25 15:27:41 2018 -0400 +++ b/mercurial/revset.py Tue Sep 25 16:05:21 2018 -0400 @@ -631,13 +631,11 @@ in the repo (whereas we want "::x *and* ::y"). """ - # only wants the heads of the set passed in - h = heads(repo, fullreposet(repo), x, anyorder) - if not h: + startrevs = getset(repo, fullreposet(repo), x, order=anyorder) + if not startrevs: return baseset() - for r in h: + for r in startrevs: subset &= dagop.revancestors(repo, baseset([r])) - return subset @predicate('contains(pattern)', weight=100)