Merge branch 'ad/commit-have-m-option' into maint
"git commit" misbehaved in a few minor ways when an empty message is given via -m '', all of which has been corrected. * ad/commit-have-m-option: commit: do not ignore an empty message given by -m '' commit: --amend -m '' silently fails to wipe message
This commit is contained in:
commit
12c5cd774e
@ -694,7 +694,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.len) {
|
if (have_option_m) {
|
||||||
strbuf_addbuf(&sb, &message);
|
strbuf_addbuf(&sb, &message);
|
||||||
hook_arg1 = "message";
|
hook_arg1 = "message";
|
||||||
} else if (logfile && !strcmp(logfile, "-")) {
|
} else if (logfile && !strcmp(logfile, "-")) {
|
||||||
@ -1171,9 +1171,9 @@ static int parse_and_validate_options(int argc, const char *argv[],
|
|||||||
f++;
|
f++;
|
||||||
if (f > 1)
|
if (f > 1)
|
||||||
die(_("Only one of -c/-C/-F/--fixup can be used."));
|
die(_("Only one of -c/-C/-F/--fixup can be used."));
|
||||||
if (message.len && f > 0)
|
if (have_option_m && f > 0)
|
||||||
die((_("Option -m cannot be combined with -c/-C/-F/--fixup.")));
|
die((_("Option -m cannot be combined with -c/-C/-F/--fixup.")));
|
||||||
if (f || message.len)
|
if (f || have_option_m)
|
||||||
template_file = NULL;
|
template_file = NULL;
|
||||||
if (edit_message)
|
if (edit_message)
|
||||||
use_message = edit_message;
|
use_message = edit_message;
|
||||||
|
@ -200,6 +200,26 @@ test_expect_success '--amend --edit of empty message' '
|
|||||||
test_cmp expect msg
|
test_cmp expect msg
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success '--amend to set message to empty' '
|
||||||
|
echo bata >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_success '--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' '
|
test_expect_success '-m --edit' '
|
||||||
echo amended >expect &&
|
echo amended >expect &&
|
||||||
git commit --allow-empty -m buffer &&
|
git commit --allow-empty -m buffer &&
|
||||||
|
Loading…
Reference in New Issue
Block a user