From patchwork Fri Oct 1 19:52:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D11561: errors: raise InputError from revpair() iff revset provided by the user From: phabricator X-Patchwork-Id: 49884 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Fri, 1 Oct 2021 19:52:29 +0000 martinvonz created this revision. Herald added a reviewer: hg-reviewers. Herald added a subscriber: mercurial-patches. REVISION SUMMARY Same reasoning as for `revrange()` in an earlier patch. REPOSITORY rHG Mercurial BRANCH default REVISION DETAIL https://phab.mercurial-scm.org/D11561 AFFECTED FILES hgext/extdiff.py mercurial/commands.py mercurial/logcmdutil.py tests/autodiff.py CHANGE DETAILS To: martinvonz, #hg-reviewers Cc: mercurial-patches, mercurial-devel diff --git a/tests/autodiff.py b/tests/autodiff.py --- a/tests/autodiff.py +++ b/tests/autodiff.py @@ -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, diff --git a/mercurial/logcmdutil.py b/mercurial/logcmdutil.py --- a/mercurial/logcmdutil.py +++ b/mercurial/logcmdutil.py @@ -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). diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -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'): diff --git a/hgext/extdiff.py b/hgext/extdiff.py --- a/hgext/extdiff.py +++ b/hgext/extdiff.py @@ -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: