]> git.ipfire.org Git - thirdparty/git.git/commitdiff
upload-pack: pass upload_pack_data to get_common_commits()
authorChristian Couder <christian.couder@gmail.com>
Fri, 15 May 2020 10:04:46 +0000 (12:04 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 18 May 2020 19:58:01 +0000 (12:58 -0700)
As we cleanup 'upload-pack.c' by using 'struct upload_pack_data'
more thoroughly, let's pass 'struct upload_pack_data' to
get_common_commits(), so that this function and the functions
it calls can use all the fields of that struct in followup
commits.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
upload-pack.c

index cb336c5713958e5b0781386e38a3ba3809251ad7..7953a33189f685cec07eb32bcd66f10cd64813e3 100644 (file)
@@ -414,9 +414,8 @@ static int ok_to_give_up(const struct object_array *have_obj,
                                            min_generation);
 }
 
-static int get_common_commits(struct packet_reader *reader,
-                             struct object_array *have_obj,
-                             struct object_array *want_obj)
+static int get_common_commits(struct upload_pack_data *data,
+                             struct packet_reader *reader)
 {
        struct object_id oid;
        char last_hex[GIT_MAX_HEXSZ + 1];
@@ -432,12 +431,14 @@ static int get_common_commits(struct packet_reader *reader,
                reset_timeout();
 
                if (packet_reader_read(reader) != PACKET_READ_NORMAL) {
-                       if (multi_ack == 2 && got_common
-                           && !got_other && ok_to_give_up(have_obj, want_obj)) {
+                       if (multi_ack == 2
+                           && got_common
+                           && !got_other
+                           && ok_to_give_up(&data->have_obj, &data->want_obj)) {
                                sent_ready = 1;
                                packet_write_fmt(1, "ACK %s ready\n", last_hex);
                        }
-                       if (have_obj->nr == 0 || multi_ack)
+                       if (data->have_obj.nr == 0 || multi_ack)
                                packet_write_fmt(1, "NAK\n");
 
                        if (no_done && sent_ready) {
@@ -451,10 +452,11 @@ static int get_common_commits(struct packet_reader *reader,
                        continue;
                }
                if (skip_prefix(reader->line, "have ", &arg)) {
-                       switch (got_oid(arg, &oid, have_obj)) {
+                       switch (got_oid(arg, &oid, &data->have_obj)) {
                        case -1: /* they have what we do not */
                                got_other = 1;
-                               if (multi_ack && ok_to_give_up(have_obj, want_obj)) {
+                               if (multi_ack
+                                   && ok_to_give_up(&data->have_obj, &data->want_obj)) {
                                        const char *hex = oid_to_hex(&oid);
                                        if (multi_ack == 2) {
                                                sent_ready = 1;
@@ -470,14 +472,14 @@ static int get_common_commits(struct packet_reader *reader,
                                        packet_write_fmt(1, "ACK %s common\n", last_hex);
                                else if (multi_ack)
                                        packet_write_fmt(1, "ACK %s continue\n", last_hex);
-                               else if (have_obj->nr == 1)
+                               else if (data->have_obj.nr == 1)
                                        packet_write_fmt(1, "ACK %s\n", last_hex);
                                break;
                        }
                        continue;
                }
                if (!strcmp(reader->line, "done")) {
-                       if (have_obj->nr > 0) {
+                       if (data->have_obj.nr > 0) {
                                if (multi_ack)
                                        packet_write_fmt(1, "ACK %s\n", last_hex);
                                return 0;
@@ -1176,9 +1178,7 @@ void upload_pack(struct upload_pack_options *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);
+                       get_common_commits(&data, &reader);
                        create_pack_file(&data.have_obj,
                                         &data.want_obj,
                                         &data.filter_options);