git-commit: add a prepare-commit-msg hook
authorPaolo Bonzini <bonzini@gnu.org>
Tue, 5 Feb 2008 07:04:18 +0000 (08:04 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Feb 2008 10:26:55 +0000 (02:26 -0800)
commit8089c85bcba89464b9b2a32fa948ed85eb367e70
tree8a7bd3867356a060ca942123607e3dc95f0ef603
parentec84bd000a89e657b36136ec927144cd13f26079
git-commit: add a prepare-commit-msg hook

The prepare-commit-msg hook is run whenever a "fresh" commit message
is prepared, just before it is shown in the editor (if it is).
Its purpose is to modify the commit message in-place.

It takes one to three parameters.  The first is the name of the file that
the commit log message.  The second is the source of the commit message,
and can be: "message" (if a -m or -F option was given); "template" (if a
-t option was given or the configuration option commit.template is set);
"merge" (if the commit is a merge or a .git/MERGE_MSG file exists);
"squash" (if a .git/SQUASH_MSG file exists); or "commit", followed by
a commit SHA1 as the third parameter (if a -c, -C or --amend option
was given).

If its exit status is non-zero, git-commit will abort.  The hook is
not suppressed by the --no-verify option, so it should not be used
as a replacement for the pre-commit hook.

The sample prepare-commit-msg comments out the `Conflicts:` part of
a merge's commit message; other examples are commented out, including
adding a Signed-off-by line at the bottom of the commit messsage,
that the user can then edit or discard altogether.

Signed-off-by: Paolo Bonzini <bonzini@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-commit.txt
Documentation/hooks.txt
builtin-commit.c
t/t7505-prepare-commit-msg-hook.sh [new file with mode: 0755]
templates/hooks--commit-msg
templates/hooks--prepare-commit-msg [new file with mode: 0644]