commit: --amend -m '' silently fails to wipe message

`git commit --amend -m ''` seems to be an unambiguous request to blank a commit message, but it actually leaves the commit message as-is. That's the case regardless of whether `--allow-empty-message` is specified, and doesn't so much as drop a non-zero return code. Add failing tests to show this behaviour. Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Adam Dinwoodie committed Apr 6, 2016 at 18:15 UTC 178e8143b4f79290b3ffe40fe2ebf769fccc1ab7
1 file changed +20
t/t7501-commit.sh
+20
@@ -200,6 +200,26 @@ test_expect_success '--amend --edit of empty message' '
200 test_cmp expect msg
201 '
202
203 +test_expect_failure '--amend to set message to empty' '
204 + echo batá >file &&
205 + git add file &&
206 + git commit -m "unamended" &&
207 + git commit --amend --allow-empty-message -m "" &&
208 + git diff-tree -s --format=%s HEAD >msg &&
209 + echo "" >expect &&
210 + test_cmp expect msg
211 +'
212 +
213 +test_expect_failure '--amend to set empty message needs --allow-empty-message' '
214 + echo conga >file &&
215 + git add file &&
216 + git commit -m "unamended" &&
217 + test_must_fail git commit --amend -m "" &&
218 + git diff-tree -s --format=%s HEAD >msg &&
219 + echo "unamended" >expect &&
220 + test_cmp expect msg
221 +'
222 +
223 test_expect_success '-m --edit' '
224 echo amended >expect &&
225 git commit --allow-empty -m buffer &&