bookmarks: abort when incompatible options are used (issue3663)
authorDavid Soria Parra <dsp@php.net>
Wed, 17 Oct 2012 11:50:47 +0200
changeset 17790 0291e122fb05
parent 17789 4cfd02c2df9a
child 17791 1e30c1bbd8c0
bookmarks: abort when incompatible options are used (issue3663) Options like --delete and --rename are incompatible with each other. In this case we abort. We do not abort if the result is a nullop. Nullops are: '--delete --inactive', '--delete --force'.
mercurial/commands.py
tests/test-bookmarks.t
--- a/mercurial/commands.py	Wed Oct 17 08:44:49 2012 +0200
+++ b/mercurial/commands.py	Wed Oct 17 11:50:47 2012 +0200
@@ -807,6 +807,13 @@
             raise util.Abort(
                 _("a bookmark cannot have the name of an existing branch"))
 
+    if delete and rename:
+        raise util.Abort(_("--delete and --rename are incompatible"))
+    if delete and rev:
+        raise util.Abort(_("--rev is incompatible with --delete"))
+    if rename and rev:
+        raise util.Abort(_("--rev is incompatible with --rename"))
+
     if delete:
         if mark is None:
             raise util.Abort(_("bookmark name required"))
--- a/tests/test-bookmarks.t	Wed Oct 17 08:44:49 2012 +0200
+++ b/tests/test-bookmarks.t	Wed Oct 17 11:50:47 2012 +0200
@@ -242,6 +242,20 @@
   abort: a bookmark cannot have the name of an existing branch
   [255]
 
+incompatible options
+
+  $ hg bookmark -m Y -d Z
+  abort: --delete and --rename are incompatible
+  [255]
+
+  $ hg bookmark -r 1 -d Z
+  abort: --rev is incompatible with --delete
+  [255]
+
+  $ hg bookmark -r 1 -m Z Y
+  abort: --rev is incompatible with --rename
+  [255]
+
 force bookmark with existing name
 
   $ hg bookmark -f Z