Hooks used by GIT
=================
v0.99.6, Sep 2005

Hooks are little scripts you can place in `$GIT_DIR/hooks`
directory to trigger action at certain points.  When
`git-init-db` is run, a handful example hooks are copied in the
`hooks` directory of the new repository, but by default they are
all disabled.  To enable a hook, make it executable with `chmod
+x`.

This document describes the currently defined hooks.

applypatch-msg
--------------

This hook is invoked by `git-applypatch` script, which is
typically invoked by `git-applymbox`.  It takes a single
parameter, the name of the file that holds the proposed commit
log message.  Exiting with non-zero status causes the
'git-applypatch' to abort before applying the patch.

The hook is allowed to edit the message file in place, and can
be used to normalize the message into some project standard
format (if the project has one). It can also be used to refuse
the commit after inspecting the message file.

The default applypatch-msg hook, when enabled, runs the
commit-msg hook, if the latter is enabled.

pre-applypatch
--------------

This hook is invoked by `git-applypatch` script, which is
typically invoked by `git-applymbox`.  It takes no parameter,
and is invoked after the patch is applied, but before a commit
is made.  Exiting with non-zero status causes the working tree
after application of the patch not committed.

It can be used to inspect the current working tree and refuse to
make a commit if it does not pass certain test.

The default pre-applypatch hook, when enabled, runs the
pre-commit hook, if the latter is enabled.

post-applypatch
---------------

This hook is invoked by `git-applypatch` script, which is
typically invoked by `git-applymbox`.  It takes no parameter,
and is invoked after the patch is applied and a commit is made.

This hook is meant primarily for notification, and cannot affect
the outcome of `git-applypatch`.

pre-commit
----------

This hook is invoked by `git-commit`, and can be bypassed
with `\--no-verify` option.  It takes no parameter, and is
invoked before obtaining the proposed commit log message and
making a commit.  Exiting with non-zero status from this script
causes the `git-commit` to abort.

The default pre-commit hook, when enabled, catches introduction
of lines with trailing whitespaces and aborts the commit when
a such line is found.

commit-msg
----------

This hook is invoked by `git-commit`, and can be bypassed
with `\--no-verify` option.  It takes a single parameter, the
name of the file that holds the proposed commit log message.
Exiting with non-zero status causes the `git-commit` to
abort.

The hook is allowed to edit the message file in place, and can
be used to normalize the message into some project standard
format (if the project has one). It can also be used to refuse
the commit after inspecting the message file.

The default commit-msg hook, when enabled, detects duplicate
Signed-off-by: lines, and aborts the commit when one is found.

post-commit
-----------

This hook is invoked by `git-commit`.  It takes no
parameter, and is invoked after a commit is made.

This hook is meant primarily for notification, and cannot affect
the outcome of `git-commit`.

The default post-commit hook, when enabled, demonstrates how to
send out a commit notification e-mail.

update
------

This hook is invoked by `git-receive-pack`, which is invoked
when a `git push` is done against the repository.  It takes
three parameters, name of the ref being updated, old object name
stored in the ref, and the new objectname to be stored in the
ref.  Exiting with non-zero status from this hook prevents
`git-receive-pack` from updating the ref.

This can be used to prevent 'forced' update on certain refs by
making sure that the object name is a commit object that is a
descendant of the commit object named by the old object name.
Another use suggested on the mailing list is to use this hook to
implement access control which is finer grained than the one
based on filesystem group.

post-update
-----------

This hook is invoked by `git-receive-pack`, which is invoked
when a `git push` is done against the repository.  It takes
variable number of parameters; each of which is the name of ref
that was actually updated.

This hook is meant primarily for notification, and cannot affect
the outcome of `git-receive-pack`.

The default post-update hook, when enabled, runs
`git-update-server-info` to keep the information used by dumb
transport up-to-date.
