diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -614,11 +614,11 @@ # This is an internal method is for quickly calculating "heads(::x and # ::y)" - # These greatest common ancestors are the same ones that the consesus bid + # These greatest common ancestors are the same ones that the consensus bid # merge will find. - h = heads(repo, fullreposet(repo), x, anyorder) + startrevs = getset(repo, fullreposet(repo), x, order=anyorder) - ancs = repo.changelog._commonancestorsheads(*list(h)) + ancs = repo.changelog._commonancestorsheads(*list(startrevs)) return subset & baseset(ancs) @predicate('commonancestors(set)', safe=True) diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -1080,7 +1080,7 @@ $ hg log -T '{rev}\n' -r 'heads(commonancestors(9))' 9 $ hg log -T '{rev}\n' -r 'heads(commonancestors(8 + 9))' - 9 + 8 test ancestor variants of empty revision