Browse Source

commit: do not trigger bogus "has templated message edited" check

When "-t template" and "-F msg" options are both given (or worse yet,
there is "commit.template" configuration but a message is given in some
other way), the documentation says that template is ignored.  However,
the "has the user edited the message?" check still used the contents of
the template file as the basis of the emptyness check.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 13 years ago
parent
commit
010c7dbcbe
  1. 2
      builtin/commit.c
  2. 6
      t/t7501-commit.sh

2
builtin/commit.c

@ -1049,6 +1049,8 @@ static int parse_and_validate_options(int argc, const char *argv[], @@ -1049,6 +1049,8 @@ static int parse_and_validate_options(int argc, const char *argv[],
die(_("Only one of -c/-C/-F/--fixup can be used."));
if (message.len && f > 0)
die((_("Option -m cannot be combined with -c/-C/-F/--fixup.")));
if (f || message.len)
template_file = NULL;
if (edit_message)
use_message = edit_message;
if (amend && !use_message && !fixup_message)

6
t/t7501-commit.sh

@ -81,7 +81,13 @@ test_expect_success 'empty commit message' ' @@ -81,7 +81,13 @@ test_expect_success 'empty commit message' '
test_must_fail git commit -F msg -a
'

test_expect_success 'template "emptyness" check does not kick in with -F' '
git checkout HEAD file && echo >>file && git add file &&
git commit -t file -F file
'

test_expect_success 'setup: commit message from file' '
git checkout HEAD file && echo >>file && git add file &&
echo this is the commit message, coming from a file >msg &&
git commit -F msg -a
'

Loading…
Cancel
Save