diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -653,11 +653,6 @@ def _dobackout(ui, repo, node=None, rev= repo.ui.status(_("use 'hg resolve' to retry unresolved " "file merges\n")) return 1 - elif opts.get('no_commit'): - msg = _("changeset %s backed out, " - "don't forget to commit.\n") - ui.status(msg % short(node)) - return 0 finally: ui.setconfig('ui', 'forcemerge', '', '') lockmod.release(dsguard) @@ -666,6 +661,11 @@ def _dobackout(ui, repo, node=None, rev= repo.dirstate.setbranch(branch) cmdutil.revert(ui, repo, rctx, repo.dirstate.parents()) + if opts.get('no_commit'): + msg = _("changeset %s backed out, " + "don't forget to commit.\n") + ui.status(msg % short(node)) + return 0 def commitfunc(ui, repo, message, match, opts): editform = 'backout' diff --git a/tests/test-backout.t b/tests/test-backout.t --- a/tests/test-backout.t +++ b/tests/test-backout.t @@ -739,4 +739,17 @@ Test usage of `hg resolve` in case of co nine TEN +--no-commit shouldn't commit + $ hg init a + $ cd a + $ for i in 1 2 3; do + > touch $i + > hg ci -Am $i + > done + adding 1 + adding 2 + adding 3 + $ hg backout --no-commit . + removing 3 + changeset cccc23d9d68f backed out, don't forget to commit.