diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -7665,6 +7665,7 @@ Returns 0 on success, 1 if there are unresolved files. """ + cmdutil.check_at_most_one_arg(opts, b'clean', b'check', b'merge') rev = opts.get('rev') date = opts.get('date') clean = opts.get('clean') @@ -7686,14 +7687,6 @@ if date and rev is not None: raise error.Abort(_(b"you can't specify a revision and a date")) - if len([x for x in (clean, check, merge) if x]) > 1: - raise error.Abort( - _( - b"can only specify one of -C/--clean, -c/--check, " - b"or -m/--merge" - ) - ) - updatecheck = None if check: updatecheck = b'abort' diff --git a/tests/test-update-branches.t b/tests/test-update-branches.t --- a/tests/test-update-branches.t +++ b/tests/test-update-branches.t @@ -189,17 +189,17 @@ parent=2 $ revtest '-cC dirty linear' dirty 1 2 -cC - abort: can only specify one of -C/--clean, -c/--check, or -m/--merge + abort: cannot specify both --clean and --check parent=1 M foo $ revtest '-mc dirty linear' dirty 1 2 -mc - abort: can only specify one of -C/--clean, -c/--check, or -m/--merge + abort: cannot specify both --check and --merge parent=1 M foo $ revtest '-mC dirty linear' dirty 1 2 -mC - abort: can only specify one of -C/--clean, -c/--check, or -m/--merge + abort: cannot specify both --clean and --merge parent=1 M foo