Skip to content

Commit

Permalink
upload-pack: use 'struct upload_pack_data' in upload_pack()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
chriscool authored and gitster committed May 18, 2020
1 parent e849832 commit ebf8ebc
Showing 1 changed file with 17 additions and 15 deletions.
32 changes: 17 additions & 15 deletions upload-pack.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
struct string_list symref = STRING_LIST_INIT_DUP;
struct object_array want_obj = OBJECT_ARRAY_INIT;
struct packet_reader reader;
struct list_objects_filter_options filter_options;
struct upload_pack_data data;

stateless_rpc = options->stateless_rpc;
timeout = options->timeout;
daemon_mode = options->daemon_mode;

memset(&filter_options, 0, sizeof(filter_options));

git_config(upload_pack_config, NULL);

upload_pack_data_init(&data);

head_ref_namespaced(find_symref, &symref);

if (options->advertise_refs || !stateless_rpc) {
Expand All @@ -1169,21 +1168,24 @@ void upload_pack(struct upload_pack_options *options)
for_each_namespaced_ref(check_ref, NULL);
}
string_list_clear(&symref, 1);
if (options->advertise_refs)
return;

packet_reader_init(&reader, 0, NULL, 0,
PACKET_READ_CHOMP_NEWLINE |
PACKET_READ_DIE_ON_ERR_PACKET);
if (!options->advertise_refs) {
packet_reader_init(&reader, 0, NULL, 0,
PACKET_READ_CHOMP_NEWLINE |
PACKET_READ_DIE_ON_ERR_PACKET);

receive_needs(&reader, &want_obj, &filter_options);
if (want_obj.nr) {
struct object_array have_obj = OBJECT_ARRAY_INIT;
get_common_commits(&reader, &have_obj, &want_obj);
create_pack_file(&have_obj, &want_obj, &filter_options);
receive_needs(&reader, &data.want_obj, &data.filter_options);
if (data.want_obj.nr) {
get_common_commits(&reader,
&data.have_obj,
&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,
Expand Down

0 comments on commit ebf8ebc

Please sign in to comment.