Mercurial > hg
changeset 20991:a05d694599f9
revlog: use context ancestor instead of changelog ancestor
We want to move in this direction.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 07 Apr 2014 23:17:51 +0200 |
parents | d9e211a658eb |
children | 05086b56b564 |
files | mercurial/revset.py |
diffstat | 1 files changed, 6 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Tue Feb 25 20:31:53 2014 +0100 +++ b/mercurial/revset.py Mon Apr 07 23:17:51 2014 +0200 @@ -320,7 +320,7 @@ def ancestor(repo, subset, x): """``ancestor(*changeset)`` - Greatest common ancestor of the changesets. + A greatest common ancestor of the changesets. Accepts 0 or more changesets. Will return empty list when passed no args. @@ -332,18 +332,15 @@ anc = None # (getset(repo, rl, i) for i in l) generates a list of lists - rev = repo.changelog.rev - ancestor = repo.changelog.ancestor - node = repo.changelog.node for revs in (getset(repo, rl, i) for i in l): for r in revs: if anc is None: - anc = r + anc = repo[r] else: - anc = rev(ancestor(node(anc), node(r))) - - if anc is not None and anc in subset: - return baseset([anc]) + anc = anc.ancestor(repo[r]) + + if anc is not None and anc.rev() in subset: + return baseset([anc.rev()]) return baseset([]) def _ancestors(repo, subset, x, followfirst=False):