Mercurial > hg
changeset 46115:be3d8178251e
errors: raise InputError if an ambiguous revision id prefix is used
It's long bothered me that we include the "00changelog.i" part in a
message to the user. This fixes that along with the exit code.
Differential Revision: https://phab.mercurial-scm.org/D9600
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 09 Dec 2020 20:22:25 -0800 |
parents | c6ae1982b2a1 |
children | 17a695357270 |
files | mercurial/revset.py mercurial/scmutil.py tests/test-revisions.t tests/test-revset.t |
diffstat | 4 files changed, 20 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Thu Dec 10 01:18:15 2020 -0800 +++ b/mercurial/revset.py Wed Dec 09 20:22:25 2020 -0800 @@ -2691,7 +2691,15 @@ def lookupfn(repo): - return lambda symbol: scmutil.isrevsymbol(repo, symbol) + def fn(symbol): + try: + return scmutil.isrevsymbol(repo, symbol) + except error.AmbiguousPrefixLookupError: + raise error.InputError( + b'ambiguous revision identifier: %s' % symbol + ) + + return fn def match(ui, spec, lookup=None):
--- a/mercurial/scmutil.py Thu Dec 10 01:18:15 2020 -0800 +++ b/mercurial/scmutil.py Wed Dec 09 20:22:25 2020 -0800 @@ -1798,7 +1798,7 @@ k = encoding.tolocal(k) try: data[revsingle(repo, k).rev()] = encoding.tolocal(v) - except (error.LookupError, error.RepoLookupError): + except (error.LookupError, error.RepoLookupError, error.InputError): pass # we ignore data for nodes that don't exist locally finally: if proc:
--- a/tests/test-revisions.t Thu Dec 10 01:18:15 2020 -0800 +++ b/tests/test-revisions.t Wed Dec 09 20:22:25 2020 -0800 @@ -36,8 +36,8 @@ 1:9 7 was ambiguous and still is $ hg l -r 7 - abort: 00changelog.i@7: ambiguous identifier - [255] + abort: ambiguous revision identifier: 7 + [10] 7b is no longer ambiguous $ hg l -r 7b 3:7b
--- a/tests/test-revset.t Thu Dec 10 01:18:15 2020 -0800 +++ b/tests/test-revset.t Wed Dec 09 20:22:25 2020 -0800 @@ -1873,8 +1873,8 @@ 3 $ hg log --template '{rev}\n' -r 'id(x)' $ hg log --template '{rev}\n' -r 'x' - abort: 00changelog.i@: ambiguous identifier - [255] + abort: ambiguous revision identifier: x + [10] $ log 'id(23268)' 4 $ log 'id(2785f51eece)' @@ -2040,14 +2040,14 @@ obsoleted 1 changesets $ hg debugrevspec 'fff' - abort: 00changelog.i@fff: ambiguous identifier - [255] + abort: ambiguous revision identifier: fff + [10] $ hg debugrevspec 'ffff' - abort: 00changelog.i@ffff: ambiguous identifier - [255] + abort: ambiguous revision identifier: ffff + [10] $ hg debugrevspec 'fffb' - abort: 00changelog.i@fffb: ambiguous identifier - [255] + abort: ambiguous revision identifier: fffb + [10] BROKEN should be '2' (node lookup uses unfiltered repo) $ hg debugrevspec 'id(fffb)' BROKEN should be '2' (node lookup uses unfiltered repo)