]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jv/pkt-line-batch'
authorJunio C Hamano <gitster@pobox.com>
Mon, 20 Sep 2021 22:20:40 +0000 (15:20 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 20 Sep 2021 22:20:41 +0000 (15:20 -0700)
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

1  2 
cache.h
ls-refs.c
upload-pack.c

diff --cc cache.h
Simple merge
diff --cc ls-refs.c
index 84021416ca5561c937e920fc83d6a1fdede034f5,e6a2dbd96230d246560cfcafb37aba0b6bd080cc..5ad521c6c7230a47580698b0665ddf381506c71b
+++ 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;
  }
  
diff --cc upload-pack.c
Simple merge