rebase: use cmdutil.check_at_most_one_arg() for action
Here we also needed to know what the action was (if any), so I've
updated the helper to return any specified option.
Differential Revision: https://phab.mercurial-scm.org/D7640
--- a/hgext/rebase.py Thu Dec 12 22:30:59 2019 -0800
+++ b/hgext/rebase.py Thu Dec 12 15:55:33 2019 -0800
@@ -1021,12 +1021,7 @@
inmemory = ui.configbool(b'rebase', b'experimental.inmemory')
dryrun = opts.get(b'dry_run')
confirm = opts.get(b'confirm')
- selactions = [k for k in [b'abort', b'stop', b'continue'] if opts.get(k)]
- if len(selactions) > 1:
- raise error.Abort(
- _(b'cannot use --%s with --%s') % tuple(selactions[:2])
- )
- action = selactions[0] if selactions else None
+ action = cmdutil.check_at_most_one_arg(opts, b'abort', b'stop', b'continue')
if dryrun and action:
raise error.Abort(_(b'cannot specify both --dry-run and --%s') % action)
if confirm and action:
--- a/mercurial/cmdutil.py Thu Dec 12 22:30:59 2019 -0800
+++ b/mercurial/cmdutil.py Thu Dec 12 15:55:33 2019 -0800
@@ -261,7 +261,10 @@
def check_at_most_one_arg(opts, *args):
- """abort if more than one of the arguments are in opts"""
+ """abort if more than one of the arguments are in opts
+
+ Returns the unique argument or None if none of them were specified.
+ """
previous = None
for x in args:
if opts.get(x):
@@ -270,6 +273,7 @@
_(b'cannot specify both --%s and --%s') % (previous, x)
)
previous = x
+ return previous
def check_incompatible_arguments(opts, first, *others):
--- a/tests/test-rebase-obsolete.t Thu Dec 12 22:30:59 2019 -0800
+++ b/tests/test-rebase-obsolete.t Thu Dec 12 15:55:33 2019 -0800
@@ -2062,7 +2062,7 @@
(use 'hg rebase --continue' or 'hg rebase --abort')
[255]
$ hg rebase --stop --continue
- abort: cannot use --stop with --continue
+ abort: cannot specify both --stop and --continue
[255]
Test --stop moves bookmarks of original revisions to new rebased nodes:
--- a/tests/test-rebase-parameters.t Thu Dec 12 22:30:59 2019 -0800
+++ b/tests/test-rebase-parameters.t Thu Dec 12 15:55:33 2019 -0800
@@ -61,7 +61,7 @@
[1]
$ hg rebase --continue --abort
- abort: cannot use --abort with --continue
+ abort: cannot specify both --abort and --continue
[255]
$ hg rebase --continue --collapse