mirror of
https://github.com/git/git.git
synced 2024-09-26 18:41:28 +02:00
upload-pack: use 'struct upload_pack_data' in upload_pack()
As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's use 'struct upload_pack_data' in upload_pack(). This will make it possible in followup commits to remove a lot of static variables and local variables that have the same name and purpose as fields in 'struct upload_pack_data'. This will also make upload_pack() work in a more similar way as upload_pack_v2(). Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e8498322fa
commit
ebf8ebcc56
@ -1144,18 +1144,17 @@ static int upload_pack_config(const char *var, const char *value, void *unused)
|
|||||||
void upload_pack(struct upload_pack_options *options)
|
void upload_pack(struct upload_pack_options *options)
|
||||||
{
|
{
|
||||||
struct string_list symref = STRING_LIST_INIT_DUP;
|
struct string_list symref = STRING_LIST_INIT_DUP;
|
||||||
struct object_array want_obj = OBJECT_ARRAY_INIT;
|
|
||||||
struct packet_reader reader;
|
struct packet_reader reader;
|
||||||
struct list_objects_filter_options filter_options;
|
struct upload_pack_data data;
|
||||||
|
|
||||||
stateless_rpc = options->stateless_rpc;
|
stateless_rpc = options->stateless_rpc;
|
||||||
timeout = options->timeout;
|
timeout = options->timeout;
|
||||||
daemon_mode = options->daemon_mode;
|
daemon_mode = options->daemon_mode;
|
||||||
|
|
||||||
memset(&filter_options, 0, sizeof(filter_options));
|
|
||||||
|
|
||||||
git_config(upload_pack_config, NULL);
|
git_config(upload_pack_config, NULL);
|
||||||
|
|
||||||
|
upload_pack_data_init(&data);
|
||||||
|
|
||||||
head_ref_namespaced(find_symref, &symref);
|
head_ref_namespaced(find_symref, &symref);
|
||||||
|
|
||||||
if (options->advertise_refs || !stateless_rpc) {
|
if (options->advertise_refs || !stateless_rpc) {
|
||||||
@ -1169,21 +1168,24 @@ void upload_pack(struct upload_pack_options *options)
|
|||||||
for_each_namespaced_ref(check_ref, NULL);
|
for_each_namespaced_ref(check_ref, NULL);
|
||||||
}
|
}
|
||||||
string_list_clear(&symref, 1);
|
string_list_clear(&symref, 1);
|
||||||
if (options->advertise_refs)
|
|
||||||
return;
|
|
||||||
|
|
||||||
packet_reader_init(&reader, 0, NULL, 0,
|
if (!options->advertise_refs) {
|
||||||
PACKET_READ_CHOMP_NEWLINE |
|
packet_reader_init(&reader, 0, NULL, 0,
|
||||||
PACKET_READ_DIE_ON_ERR_PACKET);
|
PACKET_READ_CHOMP_NEWLINE |
|
||||||
|
PACKET_READ_DIE_ON_ERR_PACKET);
|
||||||
|
|
||||||
receive_needs(&reader, &want_obj, &filter_options);
|
receive_needs(&reader, &data.want_obj, &data.filter_options);
|
||||||
if (want_obj.nr) {
|
if (data.want_obj.nr) {
|
||||||
struct object_array have_obj = OBJECT_ARRAY_INIT;
|
get_common_commits(&reader,
|
||||||
get_common_commits(&reader, &have_obj, &want_obj);
|
&data.have_obj,
|
||||||
create_pack_file(&have_obj, &want_obj, &filter_options);
|
&data.want_obj);
|
||||||
|
create_pack_file(&data.have_obj,
|
||||||
|
&data.want_obj,
|
||||||
|
&data.filter_options);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
list_objects_filter_release(&filter_options);
|
upload_pack_data_clear(&data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int parse_want(struct packet_writer *writer, const char *line,
|
static int parse_want(struct packet_writer *writer, const char *line,
|
||||||
|
Loading…
Reference in New Issue
Block a user