githooks.txt: clarify documentation on reference-transaction hook

The reference-transaction hook doesn't clearly document its scope and
what values it receives as input. Document it to make it less surprising
and clearly delimit its (current) scope.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2021-03-01 10:43:55 +01:00 коммит произвёл Junio C Hamano
Родитель 5f308a89d8
Коммит 23c781f173
1 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -473,7 +473,8 @@ reference-transaction
This hook is invoked by any Git command that performs reference This hook is invoked by any Git command that performs reference
updates. It executes whenever a reference transaction is prepared, updates. It executes whenever a reference transaction is prepared,
committed or aborted and may thus get called multiple times. committed or aborted and may thus get called multiple times. The hook
does not cover symbolic references (but that may change in the future).
The hook takes exactly one argument, which is the current state the The hook takes exactly one argument, which is the current state the
given reference transaction is in: given reference transaction is in:
@ -492,6 +493,14 @@ receives on standard input a line of the format:
<old-value> SP <new-value> SP <ref-name> LF <old-value> SP <new-value> SP <ref-name> LF
where `<old-value>` is the old object name passed into the reference
transaction, `<new-value>` is the new object name to be stored in the
ref and `<ref-name>` is the full name of the ref. When force updating
the reference regardless of its current value or when the reference is
to be created anew, `<old-value>` is the all-zeroes object name. To
distinguish these cases, you can inspect the current value of
`<ref-name>` via `git rev-parse`.
The exit status of the hook is ignored for any state except for the The exit status of the hook is ignored for any state except for the
"prepared" state. In the "prepared" state, a non-zero exit status will "prepared" state. In the "prepared" state, a non-zero exit status will
cause the transaction to be aborted. The hook will not be called with cause the transaction to be aborted. The hook will not be called with