From: Junio C Hamano Date: Mon, 20 Sep 2021 22:20:43 +0000 (-0700) Subject: Merge branch 'ab/serve-cleanup' X-Git-Tag: v2.34.0-rc0~148 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5331af2352be0d6dd57a5fc4c5dfce278cf911c7;p=thirdparty%2Fgit.git Merge branch 'ab/serve-cleanup' Code clean-up around "git serve". * ab/serve-cleanup: upload-pack: document and rename --advertise-refs serve.[ch]: remove "serve_options", split up --advertise-refs code {upload,receive}-pack tests: add --advertise-refs tests serve.c: move version line to advertise_capabilities() serve: move transfer.advertiseSID check into session_id_advertise() serve.[ch]: don't pass "struct strvec *keys" to commands serve: use designated initializers transport: use designated initializers transport: rename "fetch" in transport_vtable to "fetch_refs" serve: mark has_capability() as static --- 5331af2352be0d6dd57a5fc4c5dfce278cf911c7 diff --cc protocol-caps.c index 901b6795e4,4b345c5504..bbde91810a --- a/protocol-caps.c +++ b/protocol-caps.c @@@ -69,14 -69,12 +69,13 @@@ static void send_info(struct repositor } } - packet_writer_write(writer, "%s", - strbuf_detach(&send_buffer, NULL)); + packet_writer_write(writer, "%s", send_buffer.buf); + strbuf_reset(&send_buffer); } + strbuf_release(&send_buffer); } - int cap_object_info(struct repository *r, struct strvec *keys, - struct packet_reader *request) + int cap_object_info(struct repository *r, struct packet_reader *request) { struct requested_info info; struct packet_writer writer; diff --cc upload-pack.c index 8ad5ee9bfc,fc38f04d98..c78d55bc67 --- a/upload-pack.c +++ b/upload-pack.c @@@ -1344,15 -1346,12 +1346,17 @@@ void upload_pack(const int advertise_re head_ref_namespaced(find_symref, &data.symref); - if (options->advertise_refs || !data.stateless_rpc) { + if (advertise_refs || !data.stateless_rpc) { reset_timeout(data.timeout); + if (advertise_refs) + data.no_done = 1; head_ref_namespaced(send_ref, &data); for_each_namespaced_ref(send_ref, &data); + /* + * fflush stdout before calling advertise_shallow_grafts because send_ref + * uses stdio. + */ + fflush_or_die(stdout); advertise_shallow_grafts(1); packet_flush(1); } else {