Changes compared to v2:
- remove setvbuf call
- add packet_fwrite_fmt
- add packet_fflush
Non-changes:
- no ferror calls because those are for reads, not for writes
Thanks for the reactions everyone. I agree that packet_fwrite_fmt
simplifies the patch nicely. Jeff, I hope I have given you credit
in an appropriate way, let me know if you want me to change something
there.
Regarding setvbuf: I have found out that GNU coreutils has a utility
called stdbuf that lets you modify the stdout buffer size at runtime
using some LD_PRELOAD hack so we can use that in Gitaly. I don't
think this is the best outcome for users, we ought to give them a
good default instead of expecting them to invoke git-upload-pack
as 'stdbuf -o 64K git-upload-pack'. But I can't judge the impact
of globally changing the stdout buffer size for Git so I'll settle
for having to use stdbuf.
Jacob Vosmaer (2):
pkt-line: add packet_fwrite and packet_fwrite_fmt
upload-pack: use stdio in send_ref callbacks
cache.h | 2 ++
ls-refs.c | 4 +++-
pkt-line.c | 30 ++++++++++++++++++++++++++++++
pkt-line.h | 8 ++++++++
upload-pack.c | 8 +++++---
write-or-die.c | 12 ++++++++++++
6 files changed, 60 insertions(+), 4 deletions(-)
--
2.32.0