aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-09-02 21:19:26 -0700
committerJunio C Hamano <junkio@cox.net>2005-09-02 22:38:30 -0700
commit6d35cc76909512d386b503a3feb1b40c153c3195 (patch)
treec53870ba1f43150ac5d9947ad1b067aa501f66ae
parent953e5842f8fcd40c3e7013a9793746719016db1b (diff)
downloadgit-6d35cc76909512d386b503a3feb1b40c153c3195.tar.gz
git-6d35cc76909512d386b503a3feb1b40c153c3195.tar.xz
Document hooks.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--Documentation/Makefile1
-rw-r--r--Documentation/git-applymbox.txt6
-rw-r--r--Documentation/git-applypatch.txt4
-rw-r--r--Documentation/git-commit-script.txt14
-rw-r--r--Documentation/git-receive-pack.txt6
-rw-r--r--Documentation/hooks.txt128
6 files changed, 157 insertions, 2 deletions
diff --git a/Documentation/Makefile b/Documentation/Makefile
index afdecc1a7..b81a6a2c7 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -8,6 +8,7 @@ ARTICLES += cvs-migration
ARTICLES += diffcore
ARTICLES += howto-index
ARTICLES += repository-layout
+ARTICLES += hooks
# with their own formatting rules.
SP_ARTICLES = glossary howto/revert-branch-rebase
diff --git a/Documentation/git-applymbox.txt b/Documentation/git-applymbox.txt
index 3d813ec4c..f6d857cda 100644
--- a/Documentation/git-applymbox.txt
+++ b/Documentation/git-applymbox.txt
@@ -64,6 +64,12 @@ OPTIONS
generated "Signed-off-by" line based on your committer
identity.
+
+SEE ALSO
+--------
+link:git-applypatch.html[git-applypatch].
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
diff --git a/Documentation/git-applypatch.txt b/Documentation/git-applypatch.txt
index 14ce53aad..b8946321d 100644
--- a/Documentation/git-applypatch.txt
+++ b/Documentation/git-applypatch.txt
@@ -16,6 +16,10 @@ Takes three files <msg>, <patch>, and <info> prepared from an
e-mail message by 'git-mailinfo', and creates a commit. It is
usually not necessary to use this command directly.
+This command can run `applypatch-msg`, `pre-applypatch`, and
+`post-applypatch` hooks. See link:hooks.html[hooks] for more
+information.
+
OPTIONS
-------
diff --git a/Documentation/git-commit-script.txt b/Documentation/git-commit-script.txt
index cf6b5c3da..faa1870e3 100644
--- a/Documentation/git-commit-script.txt
+++ b/Documentation/git-commit-script.txt
@@ -8,7 +8,7 @@ git-commit-script - Record your changes
SYNOPSIS
--------
-'git commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] <file>...
+'git commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] [-e] <file>...
DESCRIPTION
-----------
@@ -17,6 +17,10 @@ Updates the index file for given paths, or all modified files if
VISUAL and EDITOR environment variables to edit the commit log
message.
+This command can run `commit-msg`, `pre-commit`, and
+`post-commit` hooks. See link:hooks.html[hooks] for more
+information.
+
OPTIONS
-------
-a::
@@ -47,8 +51,14 @@ OPTIONS
has a SP character immediately followed by a TAB
character.
+-e::
+ The message taken from file with `-F`, command line with
+ `-m`, and from file with `-C` are usually used as the
+ commit log message unmodified. This option lets you
+ further edit the message taken from these sources.
+
<file>...::
- Update specified paths in the index file.
+ Update specified paths in the index file before committing.
Author
diff --git a/Documentation/git-receive-pack.txt b/Documentation/git-receive-pack.txt
index 2f1a1f8eb..2c6065fcb 100644
--- a/Documentation/git-receive-pack.txt
+++ b/Documentation/git-receive-pack.txt
@@ -77,6 +77,12 @@ OPTIONS
<directory>::
The repository to sync into.
+
+SEE ALSO
+--------
+link:git-send-pack.html[git-send-pack]
+
+
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
diff --git a/Documentation/hooks.txt b/Documentation/hooks.txt
new file mode 100644
index 000000000..45809ba13
--- /dev/null
+++ b/Documentation/hooks.txt
@@ -0,0 +1,128 @@
+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-script`, 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-script` 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-script`, 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-script` 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-script`. 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-script`.
+
+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.