Mercurial > hg-stable
changeset 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 | 6bc75a19ef28 |
files | mercurial/commands.py tests/test-backout.t |
diffstat | 2 files changed, 21 insertions(+), 1 deletions(-) [+] |
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):
--- a/tests/test-backout.t Sat Mar 08 18:41:56 2014 +0900 +++ b/tests/test-backout.t Sat Mar 08 18:52:16 2014 +0900 @@ -409,6 +409,22 @@ $ cd .. +backout of empty changeset (issue4190) + + $ hg init emptycommit + $ cd emptycommit + + $ touch file1 + $ hg ci -Aqm file1 + $ hg branch -q branch1 + $ hg ci -qm branch1 + $ hg backout -v 1 + resolving manifests + nothing changed + [1] + + $ cd .. + Test usage of `hg resolve` in case of conflict (issue4163)