errors: raise InputError from revpair() iff revset provided by the user
Same reasoning as for `revrange()` in an earlier patch.
Differential Revision: https://phab.mercurial-scm.org/D11561
--- a/hgext/extdiff.py Tue Sep 28 08:47:11 2021 -0700
+++ b/hgext/extdiff.py Tue Sep 28 13:59:01 2021 -0700
@@ -101,6 +101,7 @@
error,
filemerge,
formatter,
+ logcmdutil,
pycompat,
registrar,
scmutil,
@@ -568,7 +569,7 @@
ctx1b = repo[nullrev]
ctx2 = scmutil.revsingle(repo, to_rev, None)
else:
- ctx1a, ctx2 = scmutil.revpair(repo, revs)
+ ctx1a, ctx2 = logcmdutil.revpair(repo, revs)
if not revs:
ctx1b = repo[None].p2()
else:
--- a/mercurial/commands.py Tue Sep 28 08:47:11 2021 -0700
+++ b/mercurial/commands.py Tue Sep 28 13:59:01 2021 -0700
@@ -2610,7 +2610,7 @@
ctx2 = scmutil.revsingle(repo, to_rev, None)
else:
repo = scmutil.unhidehashlikerevs(repo, revs, b'nowarn')
- ctx1, ctx2 = scmutil.revpair(repo, revs)
+ ctx1, ctx2 = logcmdutil.revpair(repo, revs)
if reverse:
ctxleft = ctx2
@@ -6909,7 +6909,7 @@
ctx1 = ctx2.p1()
else:
repo = scmutil.unhidehashlikerevs(repo, revs, b'nowarn')
- ctx1, ctx2 = scmutil.revpair(repo, revs)
+ ctx1, ctx2 = logcmdutil.revpair(repo, revs)
forcerelativevalue = None
if ui.hasconfig(b'commands', b'status.relative'):
--- a/mercurial/logcmdutil.py Tue Sep 28 08:47:11 2021 -0700
+++ b/mercurial/logcmdutil.py Tue Sep 28 13:59:01 2021 -0700
@@ -912,6 +912,18 @@
return None
+def revpair(repo, revs):
+ """Resolves user-provided revset(s) into two revisions.
+
+ This just wraps the lower-level scmutil.revpair() in order to raise an
+ exception indicating user error.
+ """
+ try:
+ return scmutil.revpair(repo, revs)
+ except error.RepoLookupError as e:
+ raise error.InputError(e.args[0], hint=e.hint)
+
+
def revrange(repo, specs, localalias=None):
"""Resolves user-provided revset(s).
--- a/tests/autodiff.py Tue Sep 28 08:47:11 2021 -0700
+++ b/tests/autodiff.py Tue Sep 28 13:59:01 2021 -0700
@@ -4,6 +4,7 @@
from mercurial import (
error,
+ logcmdutil,
patch,
pycompat,
registrar,
@@ -49,7 +50,7 @@
else:
raise error.Abort(b'--git must be yes, no or auto')
- ctx1, ctx2 = scmutil.revpair(repo, [])
+ ctx1, ctx2 = logcmdutil.revpair(repo, [])
m = scmutil.match(ctx2, pats, opts)
it = patch.diff(
repo,