author | Shawn O. Pearce <spearce@spearce.org> | |
Sat, 10 Mar 2007 08:28:16 +0000 (03:28 -0500) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Mon, 12 Mar 2007 05:56:03 +0000 (22:56 -0700) | ||
commit | f43cd49fb82b0eee10b88833b58edd711fe8298d | |
tree | 80310d2aa2fc7480bc25c6223e186cf12385e6b6 | tree | snapshot |
parent | 1d9e8b56fe3a0360bf61ce633827af8fa9a7013c | commit | diff |
Change {pre,post}-receive hooks to use stdin
Sergey Vlasov, Andy Parkins and Alex Riesen all pointed out that it
is possible for a single invocation of receive-pack to be given more
refs than the OS might allow us to pass as command line parameters
to a single hook invocation.
We don't want to break these up into multiple invocations (like
xargs might do) as that makes it impossible for the pre-receive
hook to verify multiple related ref updates occur at the same time,
and it makes it harder for post-receive to send out a single batch
notification.
Instead we pass the reference data on a pipe connected to the
hook's stdin, supplying one ref per line to the hook. This way a
single hook invocation can obtain an infinite amount of ref data,
without bumping into any operating system limits.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Sergey Vlasov, Andy Parkins and Alex Riesen all pointed out that it
is possible for a single invocation of receive-pack to be given more
refs than the OS might allow us to pass as command line parameters
to a single hook invocation.
We don't want to break these up into multiple invocations (like
xargs might do) as that makes it impossible for the pre-receive
hook to verify multiple related ref updates occur at the same time,
and it makes it harder for post-receive to send out a single batch
notification.
Instead we pass the reference data on a pipe connected to the
hook's stdin, supplying one ref per line to the hook. This way a
single hook invocation can obtain an infinite amount of ref data,
without bumping into any operating system limits.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-receive-pack.txt | diff | blob | history | |
receive-pack.c | diff | blob | history | |
t/t5401-update-hooks.sh | diff | blob | history |