void upload_pack(struct upload_pack_options *options) { struct string_list symref = STRING_LIST_INIT_DUP; stateless_rpc = options->stateless_rpc; timeout = options->timeout; daemon_mode = options->daemon_mode; git_config(upload_pack_config, NULL); head_ref_namespaced(find_symref, &symref); if (options->advertise_refs || !stateless_rpc) { reset_timeout(); head_ref_namespaced(send_ref, &symref); for_each_namespaced_ref(send_ref, &symref); advertise_shallow_grafts(1); packet_flush(1); } else { head_ref_namespaced(check_ref, NULL); for_each_namespaced_ref(check_ref, NULL); } string_list_clear(&symref, 1); if (options->advertise_refs) return; receive_needs(); if (want_obj.nr) { get_common_commits(); create_pack_file(); } }
static void upload_pack(void) { struct string_list symref = STRING_LIST_INIT_DUP; head_ref_namespaced(find_symref, &symref); if (advertise_refs || !stateless_rpc) { reset_timeout(); head_ref_namespaced(send_ref, &symref); for_each_namespaced_ref(send_ref, &symref); advertise_shallow_grafts(1); packet_flush(1); } else { head_ref_namespaced(mark_our_ref, NULL); for_each_namespaced_ref(mark_our_ref, NULL); } string_list_clear(&symref, 1); if (advertise_refs) return; receive_needs(); if (want_obj.nr) { get_common_commits(); create_pack_file(); } }
static void get_info_refs(char *arg) { const char *service_name = get_parameter("service"); struct strbuf buf = STRBUF_INIT; hdr_nocache(); if (service_name) { const char *argv[] = {NULL /* service name */, "--stateless-rpc", "--advertise-refs", ".", NULL}; struct rpc_service *svc = select_service(service_name); strbuf_addf(&buf, "application/x-git-%s-advertisement", svc->name); hdr_str(content_type, buf.buf); end_headers(); packet_write(1, "# service=git-%s\n", svc->name); packet_flush(1); argv[0] = svc->name; run_service(argv); } else { select_getanyfile(); for_each_namespaced_ref(show_text_ref, &buf); send_strbuf("text/plain", &buf); } strbuf_release(&buf); }
static void upload_pack(void) { if (advertise_refs || !stateless_rpc) { reset_timeout(); head_ref_namespaced(send_ref, NULL); for_each_namespaced_ref(send_ref, NULL); packet_flush(1); } else { head_ref_namespaced(mark_our_ref, NULL); for_each_namespaced_ref(mark_our_ref, NULL); } if (advertise_refs) return; receive_needs(); if (want_obj.nr) { get_common_commits(); create_pack_file(); } }