Browse Source

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>
maint
Adam Dinwoodie 9 years ago committed by Junio C Hamano
parent
commit
178e8143b4
  1. 20
      t/t7501-commit.sh

20
t/t7501-commit.sh

@ -200,6 +200,26 @@ test_expect_success '--amend --edit of empty message' ' @@ -200,6 +200,26 @@ test_expect_success '--amend --edit of empty message' '
test_cmp expect msg
'

test_expect_failure '--amend to set message to empty' '
echo batá >file &&
git add file &&
git commit -m "unamended" &&
git commit --amend --allow-empty-message -m "" &&
git diff-tree -s --format=%s HEAD >msg &&
echo "" >expect &&
test_cmp expect msg
'

test_expect_failure '--amend to set empty message needs --allow-empty-message' '
echo conga >file &&
git add file &&
git commit -m "unamended" &&
test_must_fail git commit --amend -m "" &&
git diff-tree -s --format=%s HEAD >msg &&
echo "unamended" >expect &&
test_cmp expect msg
'

test_expect_success '-m --edit' '
echo amended >expect &&
git commit --allow-empty -m buffer &&

Loading…
Cancel
Save