blob: 6343c47d1830f947aae456ed48e305faef26b6c0 [file] [log] [blame]
#ifndef PROMISOR_REMOTE_H
#define PROMISOR_REMOTE_H
#include "repository.h"
struct object_id;
/*
* Promisor remote linked list
*
* Information in its fields come from remote.XXX config entries or
* from extensions.partialclone or core.partialclonefilter.
*/
struct promisor_remote {
struct promisor_remote *next;
const char *partial_clone_filter;
const char name[FLEX_ARRAY];
};
void promisor_remote_reinit(void);
struct promisor_remote *promisor_remote_find(const char *remote_name);
int has_promisor_remote(void);
/*
* Fetches all requested objects from all promisor remotes, trying them one at
* a time until all objects are fetched. Returns 0 upon success, and non-zero
* otherwise.
*
* If oid_nr is 0, this function returns 0 (success) immediately.
*/
int promisor_remote_get_direct(struct repository *repo,
const struct object_id *oids,
int oid_nr);
/*
* This should be used only once from setup.c to set the value we got
* from the extensions.partialclone config option.
*/
void set_repository_format_partial_clone(char *partial_clone);
#endif /* PROMISOR_REMOTE_H */