Mercurial > hg
changeset 38522:54d7aaa243cc
revset: add partial support for ancestor(wdir())
It's easy, so let's make it happen. I'm not certain if 'wdir() &' should
be required. ancestors(wdir()) works without it, but ancestor(wdir()) doesn't
as of now. That's the issue of fullreposet.__contains__() vs __and__().
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Fri, 29 Jun 2018 23:13:23 +0900 |
parents | c1a7bbf9984d |
children | c153f440682f |
files | mercurial/revset.py tests/test-revset.t |
diffstat | 2 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Sat Jun 23 13:19:03 2018 +0100 +++ b/mercurial/revset.py Fri Jun 29 23:13:23 2018 +0900 @@ -319,8 +319,9 @@ for r in reviter: anc = anc.ancestor(repo[r]) - if anc.rev() in subset: - return baseset([anc.rev()]) + r = scmutil.intrev(anc) + if r in subset: + return baseset([r]) return baseset() def _ancestors(repo, subset, x, followfirst=False, startdepth=None,
--- a/tests/test-revset.t Sat Jun 23 13:19:03 2018 +0100 +++ b/tests/test-revset.t Fri Jun 29 23:13:23 2018 +0900 @@ -1813,6 +1813,16 @@ 6 7 2147483647 + $ hg debugrevspec '0:wdir() & ancestor(wdir())' + 2147483647 + $ hg debugrevspec '0:wdir() & ancestor(.:wdir())' + 4 + $ hg debugrevspec '0:wdir() & ancestor(wdir(), wdir())' + 2147483647 + $ hg debugrevspec '0:wdir() & ancestor(wdir(), tip)' + 4 + $ hg debugrevspec 'null:wdir() & ancestor(wdir(), null)' + -1 $ hg debugrevspec 'wdir()~0' 2147483647 $ hg debugrevspec 'p1(wdir())'