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