summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Dinwoodie <adam@dinwoodie.org>2016-04-06 18:15:03 +0100
committerJunio C Hamano <gitster@pobox.com>2016-04-07 13:21:43 -0700
commit178e8143b4f79290b3ffe40fe2ebf769fccc1ab7 (patch)
treee8cb006f2c609e7e7e4539fda69b6bbc10040de5
parent765428699a5381f113d19974720bc91b5bfeaf1d (diff)
downloadgit-178e8143b4f79290b3ffe40fe2ebf769fccc1ab7.tar.gz
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>
-rwxr-xr-xt/t7501-commit.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh
index 63e04277f9..a7e9322d2f 100755
--- a/t/t7501-commit.sh
+++ b/t/t7501-commit.sh
@@ -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 &&