rebase: use cmdutil.check_incompatible_arguments() for --auto-orphans
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 12 Dec 2019 23:03:52 -0800
changeset 43930 412f199b4092
parent 43929 08b8bf4a8516
child 43931 8c87cc169946
rebase: use cmdutil.check_incompatible_arguments() for --auto-orphans Differential Revision: https://phab.mercurial-scm.org/D7644
hgext/rebase.py
tests/test-rebase-obsolete.t
--- a/hgext/rebase.py	Thu Dec 12 22:43:15 2019 -0800
+++ b/hgext/rebase.py	Thu Dec 12 23:03:52 2019 -0800
@@ -1034,11 +1034,11 @@
         inmemory = False
 
     if opts.get(b'auto_orphans'):
-        for key in opts:
-            if key != b'auto_orphans' and opts.get(key):
-                raise error.Abort(
-                    _(b'--auto-orphans is incompatible with %s') % (b'--' + key)
-                )
+        disallowed_opts = set(opts) - {b'auto_orphans'}
+        cmdutil.check_incompatible_arguments(
+            opts, b'auto_orphans', *disallowed_opts
+        )
+
         userrevs = list(repo.revs(opts.get(b'auto_orphans')))
         opts[b'rev'] = [revsetlang.formatspec(b'%ld and orphan()', userrevs)]
         opts[b'dest'] = b'_destautoorphanrebase(SRC)'
--- a/tests/test-rebase-obsolete.t	Thu Dec 12 22:43:15 2019 -0800
+++ b/tests/test-rebase-obsolete.t	Thu Dec 12 23:03:52 2019 -0800
@@ -487,7 +487,7 @@
   $ cp -R hidden stabilize
   $ cd stabilize
   $ hg rebase --auto-orphans '0::' -d 10
-  abort: --auto-orphans is incompatible with --dest
+  abort: cannot specify both --auto-orphans and --dest
   [255]
   $ hg rebase --auto-orphans '0::'
   rebasing 9:cf44d2f5a9f4 "D"