fetch-object: make functions return an error code

The callers of the fetch_object() and fetch_objects() might
be interested in knowing if these functions succeeded or not.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2019-06-25 15:40:26 +02:00 committed by Junio C Hamano
parent c59c7c879e
commit 2e860675b6
3 changed files with 12 additions and 9 deletions

View file

@ -5,11 +5,12 @@
#include "transport.h"
#include "fetch-object.h"
static void fetch_refs(const char *remote_name, struct ref *ref)
static int fetch_refs(const char *remote_name, struct ref *ref)
{
struct remote *remote;
struct transport *transport;
int original_fetch_if_missing = fetch_if_missing;
int res;
fetch_if_missing = 0;
remote = remote_get(remote_name);
@ -19,12 +20,14 @@ static void fetch_refs(const char *remote_name, struct ref *ref)
transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1");
transport_set_option(transport, TRANS_OPT_NO_DEPENDENTS, "1");
transport_fetch_refs(transport, ref);
res = transport_fetch_refs(transport, ref);
fetch_if_missing = original_fetch_if_missing;
return res;
}
void fetch_objects(const char *remote_name, const struct object_id *oids,
int oid_nr)
int fetch_objects(const char *remote_name, const struct object_id *oids,
int oid_nr)
{
struct ref *ref = NULL;
int i;
@ -36,5 +39,5 @@ void fetch_objects(const char *remote_name, const struct object_id *oids,
new_ref->next = ref;
ref = new_ref;
}
fetch_refs(remote_name, ref);
return fetch_refs(remote_name, ref);
}

View file

@ -3,7 +3,7 @@
struct object_id;
void fetch_objects(const char *remote_name, const struct object_id *oids,
int oid_nr);
int fetch_objects(const char *remote_name, const struct object_id *oids,
int oid_nr);
#endif

View file

@ -1381,8 +1381,8 @@ int oid_object_info_extended(struct repository *r, const struct object_id *oid,
!already_retried && r == the_repository &&
!(flags & OBJECT_INFO_SKIP_FETCH_OBJECT)) {
/*
* TODO Investigate having fetch_object() return
* TODO error/success and stopping the music here.
* TODO Investigate checking fetch_object() return
* TODO value and stopping on error here.
* TODO Pass a repository struct through fetch_object,
* such that arbitrary repositories work.
*/