receive-pack: document user-visible quarantine effects
Commit 722ff7f87
(receive-pack: quarantine objects until
pre-receive accepts, 2016-10-03) changed the underlying
details of how we take in objects. This is mostly
transparent to the user, but there are a few things they
might notice. Let's document them.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
360244a51a
commit
eaeed077a6
@ -114,6 +114,8 @@ will be performed, and the update, post-receive and post-update
|
||||
hooks will not be invoked either. This can be useful to quickly
|
||||
bail out if the update is not to be supported.
|
||||
|
||||
See the notes on the quarantine environment below.
|
||||
|
||||
update Hook
|
||||
-----------
|
||||
Before each ref is updated, if $GIT_DIR/hooks/update file exists
|
||||
@ -214,6 +216,32 @@ if the repository is packed and is served via a dumb transport.
|
||||
exec git update-server-info
|
||||
|
||||
|
||||
Quarantine Environment
|
||||
----------------------
|
||||
|
||||
When `receive-pack` takes in objects, they are placed into a temporary
|
||||
"quarantine" directory within the `$GIT_DIR/objects` directory and
|
||||
migrated into the main object store only after the `pre-receive` hook
|
||||
has completed. If the push fails before then, the temporary directory is
|
||||
removed entirely.
|
||||
|
||||
This has a few user-visible effects and caveats:
|
||||
|
||||
1. Pushes which fail due to problems with the incoming pack, missing
|
||||
objects, or due to the `pre-receive` hook will not leave any
|
||||
on-disk data. This is usually helpful to prevent repeated failed
|
||||
pushes from filling up your disk, but can make debugging more
|
||||
challenging.
|
||||
|
||||
2. Any objects created by the `pre-receive` hook will be created in
|
||||
the quarantine directory (and migrated only if it succeeds).
|
||||
|
||||
3. The `pre-receive` hook MUST NOT update any refs to point to
|
||||
quarantined objects. Other programs accessing the repository will
|
||||
not be able to see the objects (and if the pre-receive hook fails,
|
||||
those refs would become corrupted).
|
||||
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-send-pack[1], linkgit:gitnamespaces[7]
|
||||
|
@ -256,6 +256,9 @@ environment variables will not be set. If the client selects
|
||||
to use push options, but doesn't transmit any, the count variable
|
||||
will be set to zero, `GIT_PUSH_OPTION_COUNT=0`.
|
||||
|
||||
See the section on "Quarantine Environment" in
|
||||
linkgit:git-receive-pack[1] for some caveats.
|
||||
|
||||
[[update]]
|
||||
update
|
||||
~~~~~~
|
||||
|
Loading…
Reference in New Issue
Block a user