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>
This commit is contained in:

committed by
Junio C Hamano

parent
339a9840ef
commit
ee703c8a43
@ -808,53 +808,49 @@ static void deepen_by_rev_list(struct packet_writer *writer, int ac,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Returns 1 if a shallow list is sent or 0 otherwise */
|
/* Returns 1 if a shallow list is sent or 0 otherwise */
|
||||||
static int send_shallow_list(struct packet_writer *writer,
|
static int send_shallow_list(struct upload_pack_data *data)
|
||||||
int depth, int deepen_rev_list,
|
|
||||||
timestamp_t deepen_since,
|
|
||||||
struct string_list *deepen_not,
|
|
||||||
int deepen_relative,
|
|
||||||
struct object_array *shallows,
|
|
||||||
struct object_array *want_obj)
|
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (depth > 0 && deepen_rev_list)
|
if (data->depth > 0 && data->deepen_rev_list)
|
||||||
die("git upload-pack: deepen and deepen-since (or deepen-not) cannot be used together");
|
die("git upload-pack: deepen and deepen-since (or deepen-not) cannot be used together");
|
||||||
if (depth > 0) {
|
if (data->depth > 0) {
|
||||||
deepen(writer, depth, deepen_relative, shallows, want_obj);
|
deepen(&data->writer, data->depth, data->deepen_relative,
|
||||||
|
&data->shallows, &data->want_obj);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
} else if (deepen_rev_list) {
|
} else if (data->deepen_rev_list) {
|
||||||
struct argv_array av = ARGV_ARRAY_INIT;
|
struct argv_array av = ARGV_ARRAY_INIT;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
argv_array_push(&av, "rev-list");
|
argv_array_push(&av, "rev-list");
|
||||||
if (deepen_since)
|
if (data->deepen_since)
|
||||||
argv_array_pushf(&av, "--max-age=%"PRItime, deepen_since);
|
argv_array_pushf(&av, "--max-age=%"PRItime, data->deepen_since);
|
||||||
if (deepen_not->nr) {
|
if (data->deepen_not.nr) {
|
||||||
argv_array_push(&av, "--not");
|
argv_array_push(&av, "--not");
|
||||||
for (i = 0; i < deepen_not->nr; i++) {
|
for (i = 0; i < data->deepen_not.nr; i++) {
|
||||||
struct string_list_item *s = deepen_not->items + i;
|
struct string_list_item *s = data->deepen_not.items + i;
|
||||||
argv_array_push(&av, s->string);
|
argv_array_push(&av, s->string);
|
||||||
}
|
}
|
||||||
argv_array_push(&av, "--not");
|
argv_array_push(&av, "--not");
|
||||||
}
|
}
|
||||||
for (i = 0; i < want_obj->nr; i++) {
|
for (i = 0; i < data->want_obj.nr; i++) {
|
||||||
struct object *o = want_obj->objects[i].item;
|
struct object *o = data->want_obj.objects[i].item;
|
||||||
argv_array_push(&av, oid_to_hex(&o->oid));
|
argv_array_push(&av, oid_to_hex(&o->oid));
|
||||||
}
|
}
|
||||||
deepen_by_rev_list(writer, av.argc, av.argv, shallows, want_obj);
|
deepen_by_rev_list(&data->writer, av.argc, av.argv,
|
||||||
|
&data->shallows, &data->want_obj);
|
||||||
argv_array_clear(&av);
|
argv_array_clear(&av);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
} else {
|
} else {
|
||||||
if (shallows->nr > 0) {
|
if (data->shallows.nr > 0) {
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < shallows->nr; i++)
|
for (i = 0; i < data->shallows.nr; i++)
|
||||||
register_shallow(the_repository,
|
register_shallow(the_repository,
|
||||||
&shallows->objects[i].item->oid);
|
&data->shallows.objects[i].item->oid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
shallow_nr += shallows->nr;
|
shallow_nr += data->shallows.nr;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1022,14 +1018,7 @@ static void receive_needs(struct upload_pack_data *data,
|
|||||||
if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0)
|
if (data->depth == 0 && !data->deepen_rev_list && data->shallows.nr == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (send_shallow_list(&data->writer,
|
if (send_shallow_list(data))
|
||||||
data->depth,
|
|
||||||
data->deepen_rev_list,
|
|
||||||
data->deepen_since,
|
|
||||||
&data->deepen_not,
|
|
||||||
data->deepen_relative,
|
|
||||||
&data->shallows,
|
|
||||||
&data->want_obj))
|
|
||||||
packet_flush(1);
|
packet_flush(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1473,11 +1462,7 @@ static void send_shallow_info(struct upload_pack_data *data)
|
|||||||
|
|
||||||
packet_writer_write(&data->writer, "shallow-info\n");
|
packet_writer_write(&data->writer, "shallow-info\n");
|
||||||
|
|
||||||
if (!send_shallow_list(&data->writer, data->depth,
|
if (!send_shallow_list(data) &&
|
||||||
data->deepen_rev_list,
|
|
||||||
data->deepen_since, &data->deepen_not,
|
|
||||||
data->deepen_relative,
|
|
||||||
&data->shallows, &data->want_obj) &&
|
|
||||||
is_repository_shallow(the_repository))
|
is_repository_shallow(the_repository))
|
||||||
deepen(&data->writer, INFINITE_DEPTH, data->deepen_relative,
|
deepen(&data->writer, INFINITE_DEPTH, data->deepen_relative,
|
||||||
&data->shallows, &data->want_obj);
|
&data->shallows, &data->want_obj);
|
||||||
|
Reference in New Issue
Block a user