[PATCH v3 0/2] send_ref buffering
- From
Jacob Vosmaer <jacob@gitlab.com>
- Date
- Aug 31, 2021, 09:34 UTC
- Message-ID
- <20210831093444.28199-1-jacob@gitlab.com>
- In-Reply-To
- <xmqqbl5ic19t.fsf@gitster.g>
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