@matheusbsbs / matheus-bagliano / commits / ee703c8a43
Fork 0

upload-pack: pass upload_pack_data to send_shallow_list()

As we cleanup 'upload-pack.c' by using 'struct upload_pack_data' more thoroughly, let's pass that struct to send_shallow_list(), so that this function can use all the fields of the struct. This will be used in followup commits to move static variables into 'upload_pack_data'. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Christian Couder committed Jun 11, 2020 at 14:05 UTC ee703c8a43ae2901a652900e5831f0e813f56836
1 file changed +21 -36
upload-pack.c
+21 -36
@@ -808,53 +808,49 @@ static void deepen_by_rev_list(struct packet_writer *writer, int ac,
808 }
809
810 /* Returns 1 if a shallow list is sent or 0 otherwise */
811 -static int send_shallow_list(struct packet_writer *writer,
812 - int depth, int deepen_rev_list,
813 - timestamp_t deepen_since,
814 - struct string_list *deepen_not,
815 - int deepen_relative,
816 - struct object_array *shallows,
817 - struct object_array *want_obj)
811 +static int send_shallow_list(struct upload_pack_data *data)
812 {
813 int ret = 0;
814
821 - if (depth > 0 && deepen_rev_list)
815 + if (data->depth > 0 && data->deepen_rev_list)
816 die("git upload-pack: deepen and deepen-since (or deepen-not) cannot be used together");
823 - if (depth > 0) {
824 - deepen(writer, depth, deepen_relative, shallows, want_obj);
817 + if (data->depth > 0) {
818 + deepen(&data->writer, data->depth, data->deepen_relative,
819 + &data->shallows, &data->want_obj);
820 ret = 1;
826 - } else if (deepen_rev_list) {
821 + } else if (data->deepen_rev_list) {
822 struct argv_array av = ARGV_ARRAY_INIT;
823 int i;
824
825 argv_array_push(&av, "rev-list");
831 - if (deepen_since)
832 - argv_array_pushf(&av, "--max-age=%"PRItime, deepen_since);
833 - if (deepen_not->nr) {
826 + if (data->deepen_since)
827 + argv_array_pushf(&av, "--max-age=%"PRItime, data->deepen_since);
828 + if (data->deepen_not.nr) {
829 argv_array_push(&av, "--not");
835 - for (i = 0; i < deepen_not->nr; i++) {
836 - struct string_list_item *s = deepen_not->items + i;
830 + for (i = 0; i < data->deepen_not.nr; i++) {
831 + struct string_list_item *s = data->deepen_not.items + i;
832 argv_array_push(&av, s->string);
833 }
834 argv_array_push(&av, "--not");
835 }
841 - for (i = 0; i < want_obj->nr; i++) {
842 - struct object *o = want_obj->objects[i].item;
836 + for (i = 0; i < data->want_obj.nr; i++) {
837 + struct object *o = data->want_obj.objects[i].item;
838 argv_array_push(&av, oid_to_hex(&o->oid));
839 }
845 - deepen_by_rev_list(writer, av.argc, av.argv, shallows, want_obj);
840 + deepen_by_rev_list(&data->writer, av.argc, av.argv,
841 + &data->shallows, &data->want_obj);
842 argv_array_clear(&av);
843 ret = 1;
844 } else {
849 - if (shallows->nr > 0) {
845 + if (data->shallows.nr > 0) {
846 int i;
851 - for (i = 0; i < shallows->nr; i++)
847 + for (i = 0; i < data->shallows.nr; i++)
848 register_shallow(the_repository,
853 - &shallows->objects[i].item->oid);
849 + &data->shallows.objects[i].item->oid);
850 }
851 }
852
857 - shallow_nr += shallows->nr;
853 + shallow_nr += data->shallows.nr;
854 return ret;
855 }
856
@@ -1022,14 +1018,7 @@ static void receive_needs(struct upload_pack_data *data,
1018 if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0)
1019 return;
1020
1025 - if (send_shallow_list(&data->writer,
1026 - data->depth,
1027 - data->deepen_rev_list,
1028 - data->deepen_since,
1029 - &data->deepen_not,
1030 - data->deepen_relative,
1031 - &data->shallows,
1032 - &data->want_obj))
1021 + if (send_shallow_list(data))
1022 packet_flush(1);
1023 }
1024
@@ -1473,11 +1462,7 @@ static void send_shallow_info(struct upload_pack_data *data)
1462
1463 packet_writer_write(&data->writer, "shallow-info\n");
1464
1476 - if (!send_shallow_list(&data->writer, data->depth,
1477 - data->deepen_rev_list,
1478 - data->deepen_since, &data->deepen_not,
1479 - data->deepen_relative,
1480 - &data->shallows, &data->want_obj) &&
1465 + if (!send_shallow_list(data) &&
1466 is_repository_shallow(the_repository))
1467 deepen(&data->writer, INFINITE_DEPTH, data->deepen_relative,
1468 &data->shallows, &data->want_obj);