612 @predicate('_commonancestorheads(set)', safe=True) |
612 @predicate('_commonancestorheads(set)', safe=True) |
613 def _commonancestorheads(repo, subset, x): |
613 def _commonancestorheads(repo, subset, x): |
614 # This is an internal method is for quickly calculating "heads(::x and |
614 # This is an internal method is for quickly calculating "heads(::x and |
615 # ::y)" |
615 # ::y)" |
616 |
616 |
617 # These greatest common ancestors are the same ones that the consesus bid |
617 # These greatest common ancestors are the same ones that the consensus bid |
618 # merge will find. |
618 # merge will find. |
619 h = heads(repo, fullreposet(repo), x, anyorder) |
619 startrevs = getset(repo, fullreposet(repo), x, order=anyorder) |
620 |
620 |
621 ancs = repo.changelog._commonancestorsheads(*list(h)) |
621 ancs = repo.changelog._commonancestorsheads(*list(startrevs)) |
622 return subset & baseset(ancs) |
622 return subset & baseset(ancs) |
623 |
623 |
624 @predicate('commonancestors(set)', safe=True) |
624 @predicate('commonancestors(set)', safe=True) |
625 def commonancestors(repo, subset, x): |
625 def commonancestors(repo, subset, x): |
626 """Changesets that are ancestors of every changeset in set. |
626 """Changesets that are ancestors of every changeset in set. |