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:

committed by
Junio C Hamano

parent
c59c7c879e
commit
2e860675b6
@ -5,11 +5,12 @@
|
|||||||
#include "transport.h"
|
#include "transport.h"
|
||||||
#include "fetch-object.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 remote *remote;
|
||||||
struct transport *transport;
|
struct transport *transport;
|
||||||
int original_fetch_if_missing = fetch_if_missing;
|
int original_fetch_if_missing = fetch_if_missing;
|
||||||
|
int res;
|
||||||
|
|
||||||
fetch_if_missing = 0;
|
fetch_if_missing = 0;
|
||||||
remote = remote_get(remote_name);
|
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_FROM_PROMISOR, "1");
|
||||||
transport_set_option(transport, TRANS_OPT_NO_DEPENDENTS, "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;
|
fetch_if_missing = original_fetch_if_missing;
|
||||||
|
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
void fetch_objects(const char *remote_name, const struct object_id *oids,
|
int fetch_objects(const char *remote_name, const struct object_id *oids,
|
||||||
int oid_nr)
|
int oid_nr)
|
||||||
{
|
{
|
||||||
struct ref *ref = NULL;
|
struct ref *ref = NULL;
|
||||||
int i;
|
int i;
|
||||||
@ -36,5 +39,5 @@ void fetch_objects(const char *remote_name, const struct object_id *oids,
|
|||||||
new_ref->next = ref;
|
new_ref->next = ref;
|
||||||
ref = new_ref;
|
ref = new_ref;
|
||||||
}
|
}
|
||||||
fetch_refs(remote_name, ref);
|
return fetch_refs(remote_name, ref);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
struct object_id;
|
struct object_id;
|
||||||
|
|
||||||
void fetch_objects(const char *remote_name, const struct object_id *oids,
|
int fetch_objects(const char *remote_name, const struct object_id *oids,
|
||||||
int oid_nr);
|
int oid_nr);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1381,8 +1381,8 @@ int oid_object_info_extended(struct repository *r, const struct object_id *oid,
|
|||||||
!already_retried && r == the_repository &&
|
!already_retried && r == the_repository &&
|
||||||
!(flags & OBJECT_INFO_SKIP_FETCH_OBJECT)) {
|
!(flags & OBJECT_INFO_SKIP_FETCH_OBJECT)) {
|
||||||
/*
|
/*
|
||||||
* TODO Investigate having fetch_object() return
|
* TODO Investigate checking fetch_object() return
|
||||||
* TODO error/success and stopping the music here.
|
* TODO value and stopping on error here.
|
||||||
* TODO Pass a repository struct through fetch_object,
|
* TODO Pass a repository struct through fetch_object,
|
||||||
* such that arbitrary repositories work.
|
* such that arbitrary repositories work.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user