backout: fix --no-commit option (issue5054) stable
authorRuslan Sayfutdinov <sayfutdinov@fb.com>
Wed, 20 Jan 2016 08:16:58 -0800
branchstable
changeset 27912 ae4e6b80f084
parent 27911 645e78845383
child 27913 91ac8cb79125
backout: fix --no-commit option (issue5054)
mercurial/commands.py
tests/test-backout.t
--- a/mercurial/commands.py	Tue Jan 19 13:43:50 2016 -0800
+++ b/mercurial/commands.py	Wed Jan 20 08:16:58 2016 -0800
@@ -653,11 +653,6 @@
                 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 @@
         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'
--- a/tests/test-backout.t	Tue Jan 19 13:43:50 2016 -0800
+++ b/tests/test-backout.t	Wed Jan 20 08:16:58 2016 -0800
@@ -739,4 +739,17 @@
   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.