hooks doc: clarify when receive-pack invokes its hooks

The text meant to say that receive-pack runs these hooks, and only
because receive-pack is not a command the end users use every day
(ever), as an explanation also meantioned that it is run in response
to 'git push', which is an end-user facing command readers hopefully
know about.

This unfortunately gave an incorrect impression that 'git push'
always result in the hook to run.  If the refs push wanted to update
all already had the desired value, these hooks are not run.

Explicitly mention "... and updates reference(s)" as a precondition
to avoid this confusion.

Helped-by: Christoph Michelbach <michelbach94@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2017-11-24 11:10:58 +09:00
parent 9752ad0bb7
commit 7db2cbf4f1

View file

@ -222,8 +222,8 @@ to the user by writing to standard error.
pre-receive pre-receive
~~~~~~~~~~~ ~~~~~~~~~~~
This hook is invoked by 'git-receive-pack' on the remote repository, This hook is invoked by 'git-receive-pack' when it reacts to
which happens when a 'git push' is done on a local repository. 'git push' and updates reference(s) in its repository.
Just before starting to update refs on the remote repository, the Just before starting to update refs on the remote repository, the
pre-receive hook is invoked. Its exit status determines the success pre-receive hook is invoked. Its exit status determines the success
or failure of the update. or failure of the update.
@ -260,8 +260,8 @@ will be set to zero, `GIT_PUSH_OPTION_COUNT=0`.
update update
~~~~~~ ~~~~~~
This hook is invoked by 'git-receive-pack' on the remote repository, This hook is invoked by 'git-receive-pack' when it reacts to
which happens when a 'git push' is done on a local repository. 'git push' and updates reference(s) in its repository.
Just before updating the ref on the remote repository, the update hook Just before updating the ref on the remote repository, the update hook
is invoked. Its exit status determines the success or failure of is invoked. Its exit status determines the success or failure of
the ref update. the ref update.
@ -305,8 +305,8 @@ unannotated tags to be pushed.
post-receive post-receive
~~~~~~~~~~~~ ~~~~~~~~~~~~
This hook is invoked by 'git-receive-pack' on the remote repository, This hook is invoked by 'git-receive-pack' when it reacts to
which happens when a 'git push' is done on a local repository. 'git push' and updates reference(s) in its repository.
It executes on the remote repository once after all the refs have It executes on the remote repository once after all the refs have
been updated. been updated.
@ -344,8 +344,8 @@ will be set to zero, `GIT_PUSH_OPTION_COUNT=0`.
post-update post-update
~~~~~~~~~~~ ~~~~~~~~~~~
This hook is invoked by 'git-receive-pack' on the remote repository, This hook is invoked by 'git-receive-pack' when it reacts to
which happens when a 'git push' is done on a local repository. 'git push' and updates reference(s) in its repository.
It executes on the remote repository once after all the refs have It executes on the remote repository once after all the refs have
been updated. been updated.
@ -375,8 +375,8 @@ for the user.
push-to-checkout push-to-checkout
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
This hook is invoked by 'git-receive-pack' on the remote repository, This hook is invoked by 'git-receive-pack' when it reacts to
which happens when a 'git push' is done on a local repository, when 'git push' and updates reference(s) in its repository, and when
the push tries to update the branch that is currently checked out the push tries to update the branch that is currently checked out
and the `receive.denyCurrentBranch` configuration variable is set to and the `receive.denyCurrentBranch` configuration variable is set to
`updateInstead`. Such a push by default is refused if the working `updateInstead`. Such a push by default is refused if the working