allow hooks to ignore their standard input stream
Since ec7dbd145
(receive-pack: allow hooks to ignore its
standard input stream) the pre-receive and post-receive
hooks ignore SIGPIPE. Do the same for the remaining hooks
pre-push and post-rewrite, which read from standard input.
The same arguments for ignoring SIGPIPE apply.
Include test by Jeff King which checks that SIGPIPE does not
cause pre-push hook failure. With the use of git update-ref
--stdin it is fast enough to be enabled by default.
Signed-off-by: Clemens Buchacher <clemens.buchacher@intel.com>
Signed-off-by: Jeff King <peff@peff.net>
This commit is contained in:

committed by
Jeff King

parent
af40944bda
commit
af65f68cdf
@ -109,23 +109,20 @@ test_expect_success 'push to URL' '
|
||||
diff expected actual
|
||||
'
|
||||
|
||||
# Test that filling pipe buffers doesn't cause failure
|
||||
# Too slow to leave enabled for general use
|
||||
if false
|
||||
then
|
||||
printf 'parent1\nrepo1\n' >expected
|
||||
nr=1000
|
||||
while test $nr -lt 2000
|
||||
do
|
||||
nr=$(( $nr + 1 ))
|
||||
git branch b/$nr $COMMIT3
|
||||
echo "refs/heads/b/$nr $COMMIT3 refs/heads/b/$nr $_z40" >>expected
|
||||
done
|
||||
test_expect_success 'set up many-ref tests' '
|
||||
{
|
||||
nr=1000
|
||||
while test $nr -lt 2000
|
||||
do
|
||||
nr=$(( $nr + 1 ))
|
||||
echo "create refs/heads/b/$nr $COMMIT3"
|
||||
done
|
||||
} | git update-ref --stdin
|
||||
'
|
||||
|
||||
test_expect_success 'push many refs' '
|
||||
git push parent1 "refs/heads/b/*:refs/heads/b/*" &&
|
||||
diff expected actual
|
||||
'
|
||||
fi
|
||||
test_expect_success 'sigpipe does not cause pre-push hook failure' '
|
||||
echo "exit 0" | write_script "$HOOK" &&
|
||||
git push parent1 "refs/heads/b/*:refs/heads/b/*"
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Reference in New Issue
Block a user