diff mercurial/commands.py @ 20872:3f83fc5cfe71 stable 2.9.2

backout: correct commit status of no changes made (BC) (issue4190) If backout generated no changes to commit, it showed wrong status, "changeset <target> backs out changeset <target>", and raised TypeError with -v option. This changes the return code to 1, which is the same as "hg commit" and "hg rebase".
author Yuya Nishihara <yuya@tcha.org>
date Sat, 08 Mar 2014 18:52:16 +0900
parents e01cff65f4c5
children cc62c9d6887a
line wrap: on
line diff
--- a/mercurial/commands.py	Sat Mar 08 18:41:56 2014 +0900
+++ b/mercurial/commands.py	Sat Mar 08 18:52:16 2014 +0900
@@ -416,7 +416,8 @@
 
     See :hg:`help dates` for a list of formats valid for -d/--date.
 
-    Returns 0 on success, 1 if there are unresolved files.
+    Returns 0 on success, 1 if nothing to backout or there are unresolved
+    files.
     '''
     if rev and node:
         raise util.Abort(_("please specify just one revision"))
@@ -495,6 +496,9 @@
             return repo.commit(message, opts.get('user'), opts.get('date'),
                                match, editor=e)
         newnode = cmdutil.commit(ui, repo, commitfunc, [], opts)
+        if not newnode:
+            ui.status(_("nothing changed\n"))
+            return 1
         cmdutil.commitstatus(repo, newnode, branch, bheads)
 
         def nice(node):