commit: do not trigger bogus "has templated message edited" check
authorJunio C Hamano <gitster@pobox.com>
Fri, 30 Mar 2012 18:30:59 +0000 (11:30 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 30 Mar 2012 18:30:59 +0000 (11:30 -0700)
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>
builtin/commit.c
t/t7501-commit.sh

index eba1377eb32c02e57c46364c381df940afa66048..7141766ba959b5588b59b173f31463e73ead40f5 100644 (file)
@@ -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)
index 45446b186e7856bcc829a98e60f9d59c493d8630..e59cc4e8610008f16417677383e32004ed32c6fc 100755 (executable)
@@ -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
 '