# HG changeset patch # User Yuya Nishihara # Date 2016-01-30 09:00:11 # Node ID 9960b6369e7f500211e44febda9c16bf66fde06a # Parent 88609cfa37455815e4d6acd45e2a8893720c065b 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". diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -598,6 +598,8 @@ def backout(ui, repo, node=None, rev=Non 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")) diff --git a/tests/test-backout.t b/tests/test-backout.t --- a/tests/test-backout.t +++ b/tests/test-backout.t @@ -753,3 +753,10 @@ Test usage of `hg resolve` in case of co $ 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]