Mercurial > hg
changeset 42264:6bc1245cd598
revset: populate wdir() by its hash or revision number
It belongs to the same category as the null hash/revision, and we do handle
these virtual identifiers in id()/rev() predicates. Let's do that more
consistently.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Tue, 30 Apr 2019 15:15:57 +0900 |
parents | a0c5e06e9b1a |
children | 65f3a77223e0 |
files | mercurial/revset.py tests/test-revset.t |
diffstat | 2 files changed, 17 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Tue Apr 30 15:10:07 2019 +0900 +++ b/mercurial/revset.py Tue Apr 30 15:15:57 2019 +0900 @@ -123,8 +123,7 @@ if not x: raise error.ParseError(_("empty string is not a valid revision")) x = scmutil.intrev(scmutil.revsymbol(repo, x)) - if (x in subset - or x == node.nullrev and isinstance(subset, fullreposet)): + if x in subset or x in _virtualrevs and isinstance(subset, fullreposet): return baseset([x]) return baseset() @@ -2265,7 +2264,7 @@ if r in seen: continue if (r in subset - or r == node.nullrev and isinstance(subset, fullreposet)): + or r in _virtualrevs and isinstance(subset, fullreposet)): ls.append(r) seen.add(r) return baseset(ls)
--- a/tests/test-revset.t Tue Apr 30 15:10:07 2019 +0900 +++ b/tests/test-revset.t Tue Apr 30 15:15:57 2019 +0900 @@ -1956,25 +1956,26 @@ 2147483647 Test working-directory integer revision and node id -(BUG: '0:wdir()' is still needed to populate wdir revision) - $ hg debugrevspec '0:wdir() & 2147483647' + $ hg debugrevspec '2147483647' 2147483647 - $ hg debugrevspec '0:wdir() & rev(2147483647)' + $ hg debugrevspec 'rev(2147483647)' + 2147483647 + $ hg debugrevspec 'ffffffffffffffffffffffffffffffffffffffff' 2147483647 - $ hg debugrevspec '0:wdir() & ffffffffffffffffffffffffffffffffffffffff' + $ hg debugrevspec 'ffffffffffff' 2147483647 - $ hg debugrevspec '0:wdir() & ffffffffffff' + $ hg debugrevspec 'id(ffffffffffffffffffffffffffffffffffffffff)' 2147483647 - $ hg debugrevspec '0:wdir() & id(ffffffffffffffffffffffffffffffffffffffff)' + $ hg debugrevspec 'id(ffffffffffff)' 2147483647 - $ hg debugrevspec '0:wdir() & id(ffffffffffff)' + $ hg debugrevspec 'ffffffffffff+000000000000' 2147483647 + -1 $ cd .. Test short 'ff...' hash collision -(BUG: '0:wdir()' is still needed to populate wdir revision) $ hg init wdir-hashcollision $ cd wdir-hashcollision @@ -2000,21 +2001,21 @@ $ hg debugobsolete fffbae3886c8fbb2114296380d276fd37715d571 obsoleted 1 changesets - $ hg debugrevspec '0:wdir() & fff' + $ hg debugrevspec 'fff' abort: 00changelog.i@fff: ambiguous identifier! [255] - $ hg debugrevspec '0:wdir() & ffff' + $ hg debugrevspec 'ffff' abort: 00changelog.i@ffff: ambiguous identifier! [255] - $ hg debugrevspec '0:wdir() & fffb' + $ hg debugrevspec 'fffb' abort: 00changelog.i@fffb: ambiguous identifier! [255] BROKEN should be '2' (node lookup uses unfiltered repo) - $ hg debugrevspec '0:wdir() & id(fffb)' + $ hg debugrevspec 'id(fffb)' BROKEN should be '2' (node lookup uses unfiltered repo) - $ hg debugrevspec '0:wdir() & ffff8' + $ hg debugrevspec 'ffff8' 4 - $ hg debugrevspec '0:wdir() & fffff' + $ hg debugrevspec 'fffff' 2147483647 $ cd ..