Hash :
19ec5923
Author :
Date :
2022-02-07T09:29:40
push: Prepare pack before sending pack header.
For large pushes, preparing the pack can take a while. Currently we
send the pack header first, followed by preparing the pack and then
finally sending the pack. Unfortunately github.com will terminate
a git-receive-pack command over http if it is idle for more than 10
seconds. This is easily exceeded for a large push, and so the push is
rejected with a Broken Pipe error.
This patch moves the pack preparation ahead of sending the pack header,
so that the timeout is avoided.
prepare_pack() can be called multiple times but will only do the work
once, so the original PREPARE_PACK call inside git_packbuilder_foreach()
remains.