From: Junio C Hamano Date: Mon, 20 Sep 2021 22:20:40 +0000 (-0700) Subject: Merge branch 'jv/pkt-line-batch' X-Git-Tag: v2.34.0-rc0~156 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c2509c5407a70a187664982c7f484e7daacafc4f;p=thirdparty%2Fgit.git Merge branch 'jv/pkt-line-batch' Reduce number of write(2) system calls while sending the ref advertisement. * jv/pkt-line-batch: upload-pack: use stdio in send_ref callbacks pkt-line: add stdio packet write functions --- c2509c5407a70a187664982c7f484e7daacafc4f diff --cc ls-refs.c index 84021416ca,e6a2dbd962..5ad521c6c7 --- a/ls-refs.c +++ b/ls-refs.c @@@ -103,12 -101,13 +103,12 @@@ static int send_ref(const char *refname if (data->peel && oid) { struct object_id peeled; if (!peel_iterated_oid(oid, &peeled)) - strbuf_addf(&refline, " peeled:%s", oid_to_hex(&peeled)); + strbuf_addf(&data->buf, " peeled:%s", oid_to_hex(&peeled)); } - strbuf_addch(&refline, '\n'); - packet_fwrite(stdout, refline.buf, refline.len); + strbuf_addch(&data->buf, '\n'); - packet_write(1, data->buf.buf, data->buf.len); ++ packet_fwrite(stdout, data->buf.buf, data->buf.len); - strbuf_release(&refline); return 0; } @@@ -173,9 -171,8 +173,9 @@@ int ls_refs(struct repository *r, struc strvec_push(&data.prefixes, ""); for_each_fullref_in_prefixes(get_git_namespace(), data.prefixes.v, send_ref, &data, 0); - packet_flush(1); + packet_fflush(stdout); strvec_clear(&data.prefixes); + strbuf_release(&data.buf); return 0; }