D7633: clone: extract helper for checking mutually exclusive args
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Mon Dec 16 18:20:25 EST 2019
martinvonz updated this revision to Diff 18759.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7633?vs=18668&id=18759
BRANCH
default
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7633/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D7633
AFFECTED FILES
mercurial/cmdutil.py
mercurial/commands.py
CHANGE DETAILS
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -1889,8 +1889,7 @@
Returns 0 on success.
"""
opts = pycompat.byteskwargs(opts)
- if opts.get(b'noupdate') and opts.get(b'updaterev'):
- raise error.Abort(_(b"cannot specify both --noupdate and --updaterev"))
+ cmdutil.check_at_most_one_arg(opts, b'noupdate', b'updaterev')
# --include/--exclude can come from narrow or sparse.
includepats, excludepats = None, None
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -260,6 +260,18 @@
_linebelow = b"^HG: ------------------------ >8 ------------------------$"
+def check_at_most_one_arg(opts, *args):
+ """abort if more than one of the arguments are in opts"""
+ previous = None
+ for x in args:
+ if opts.get(x):
+ if previous:
+ raise error.Abort(
+ _(b'cannot specify both --%s and --%s') % (previous, x)
+ )
+ previous = x
+
+
def resolvecommitoptions(ui, opts):
"""modify commit options dict to handle related options
To: martinvonz, #hg-reviewers
Cc: pulkit, dlax, mercurial-devel
More information about the Mercurial-devel
mailing list