MCPcopy Index your code
hub / github.com/git/git / get_remote_refs

Function get_remote_refs

connect.c:560–612  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

558}
559
560struct ref **get_remote_refs(int fd_out, struct packet_reader *reader,
561 struct ref **list, int for_push,
562 struct transport_ls_refs_options *transport_options,
563 const struct string_list *server_options,
564 int stateless_rpc)
565{
566 size_t i;
567 struct strvec *ref_prefixes = transport_options ?
568 &transport_options->ref_prefixes : NULL;
569 const char **unborn_head_target = transport_options ?
570 &transport_options->unborn_head_target : NULL;
571 *list = NULL;
572
573 ensure_server_supports_v2("ls-refs");
574 packet_write_fmt(fd_out, "command=ls-refs\n");
575
576 /* Send capabilities */
577 send_capabilities(fd_out, reader);
578
579 if (server_options && server_options->nr) {
580 ensure_server_supports_v2("server-option");
581 for (i = 0; i < server_options->nr; i++)
582 packet_write_fmt(fd_out, "server-option=%s",
583 server_options->items[i].string);
584 }
585
586 packet_delim(fd_out);
587 /* When pushing we don't want to request the peeled tags */
588 if (!for_push)
589 packet_write_fmt(fd_out, "peel\n");
590 packet_write_fmt(fd_out, "symrefs\n");
591 if (server_supports_feature("ls-refs", "unborn", 0))
592 packet_write_fmt(fd_out, "unborn\n");
593 for (i = 0; ref_prefixes && i < ref_prefixes->nr; i++) {
594 packet_write_fmt(fd_out, "ref-prefix %s\n",
595 ref_prefixes->v[i]);
596 }
597 packet_flush(fd_out);
598
599 /* Process response from server */
600 while (packet_reader_read(reader) == PACKET_READ_NORMAL) {
601 if (!process_ref_v2(reader, &list, unborn_head_target))
602 die(_("invalid ls-refs response: %s"), reader->line);
603 }
604
605 if (reader->status != PACKET_READ_FLUSH)
606 die(_("expected flush after ref listing"));
607
608 check_stateless_delimiter(stateless_rpc, reader,
609 _("expected response end packet after ref listing"));
610
611 return list;
612}
613
614const char *parse_feature_value(const char *feature_list, const char *feature, size_t *lenp, size_t *offset)
615{

Callers 2

handshakeFunction · 0.85
cmd_fetch_packFunction · 0.85

Calls 10

packet_write_fmtFunction · 0.85
send_capabilitiesFunction · 0.85
packet_delimFunction · 0.85
server_supports_featureFunction · 0.85
packet_flushFunction · 0.85
packet_reader_readFunction · 0.85
process_ref_v2Function · 0.85
dieFunction · 0.70

Tested by

no test coverage detected