Browse Source

Merge branch 'es/hooks-and-local-env' into maint-2.39

Doc update for environment variables set when hooks are invoked.

* es/hooks-and-local-env:
  githooks: discuss Git operations in foreign repositories
maint
Junio C Hamano 2 years ago
parent
commit
4f8ab59838
  1. 12
      Documentation/githooks.txt

12
Documentation/githooks.txt

@ -27,6 +27,18 @@ repository. An exception are hooks triggered during a push ('pre-receive', @@ -27,6 +27,18 @@ repository. An exception are hooks triggered during a push ('pre-receive',
'update', 'post-receive', 'post-update', 'push-to-checkout') which are always
executed in $GIT_DIR.

Environment variables, such as `GIT_DIR`, `GIT_WORK_TREE`, etc., are exported
so that Git commands run by the hook can correctly locate the repository. If
your hook needs to invoke Git commands in a foreign repository or in a
different working tree of the same repository, then it should clear these
environment variables so they do not interfere with Git operations at the
foreign location. For example:

------------
local_desc=$(git describe)
foreign_desc=$(unset $(git rev-parse --local-env-vars); git -C ../foreign-repo describe)
------------

Hooks can get their arguments via the environment, command-line
arguments, and stdin. See the documentation for each hook below for
details.

Loading…
Cancel
Save