D7644: rebase: use cmdutil.check_unique_argument() for --auto-orphans

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Fri Dec 13 18:00:45 EST 2019


martinvonz updated this revision to Diff 18714.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7644?vs=18679&id=18714

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7644/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7644

AFFECTED FILES
  hgext/rebase.py
  tests/test-rebase-obsolete.t

CHANGE DETAILS

diff --git a/tests/test-rebase-obsolete.t b/tests/test-rebase-obsolete.t
--- a/tests/test-rebase-obsolete.t
+++ b/tests/test-rebase-obsolete.t
@@ -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"
@@ -2054,7 +2054,7 @@
   unresolved conflicts (see hg resolve, then hg rebase --continue)
   [1]
   $ hg rebase --stop --dry-run
-  abort: cannot specify both --dry-run and --stop
+  abort: cannot specify both --stop and --dry-run
   [255]
 
   $ hg rebase -s 3 -d 5
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -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)'



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list