diff options
Diffstat (limited to 'third_party/git/promisor-remote.h')
-rw-r--r-- | third_party/git/promisor-remote.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/third_party/git/promisor-remote.h b/third_party/git/promisor-remote.h new file mode 100644 index 000000000000..c7a14063c51e --- /dev/null +++ b/third_party/git/promisor-remote.h @@ -0,0 +1,41 @@ +#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. + */ +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 */ |