backout: disable --merge with --no-commit (issue4874) stable
authorYuya Nishihara <yuya@tcha.org>
Sat, 30 Jan 2016 18:00:11 +0900
branchstable
changeset 27954 9960b6369e7f
parent 27953 88609cfa3745
child 27955 b721c9543a4f
backout: disable --merge with --no-commit (issue4874) Because "backout --merge" have to make a commit before merging, it doesn't work with --no-commit. We could change "backout --merge" to make a merge commit automatically, and --no-commit to bypass a merge commit, but that change would be undesirable because: a) it's hard to fix bad merges in general b) two commits would be created with the same --message So, this patch simply disables "--merge --no-commit".
mercurial/commands.py
tests/test-backout.t
--- a/mercurial/commands.py	Wed Jan 27 09:07:28 2016 -0800
+++ b/mercurial/commands.py	Sat Jan 30 18:00:11 2016 +0900
@@ -598,6 +598,8 @@
 def _dobackout(ui, repo, node=None, rev=None, **opts):
     if opts.get('commit') and opts.get('no_commit'):
         raise error.Abort(_("cannot use --commit with --no-commit"))
+    if opts.get('merge') and opts.get('no_commit'):
+        raise error.Abort(_("cannot use --merge with --no-commit"))
 
     if rev and node:
         raise error.Abort(_("please specify just one revision"))
--- a/tests/test-backout.t	Wed Jan 27 09:07:28 2016 -0800
+++ b/tests/test-backout.t	Sat Jan 30 18:00:11 2016 +0900
@@ -753,3 +753,10 @@
   $ hg backout --no-commit .
   removing 3
   changeset cccc23d9d68f backed out, don't forget to commit.
+  $ hg revert -aq
+
+--no-commit can't be used with --merge
+
+  $ hg backout --merge --no-commit 2
+  abort: cannot use --merge with --no-commit
+  [255]