diff options
author | yuangli <yuangli@mathworks.com> | 2022-07-04 17:08:04 +0100 |
---|---|---|
committer | yuangli <yuangli@mathworks.com> | 2022-07-04 17:08:04 +0100 |
commit | afa79ca05862c24baa0360324ab7b63c0df90689 (patch) | |
tree | fbaa0ddf5f5176e5fb8d83ed7e0db72209473c87 /include | |
parent | 70a332a51b6364507d19bd1821b22fabbd1f2e08 (diff) | |
download | libgit2-afa79ca05862c24baa0360324ab7b63c0df90689.tar.gz |
Merge branch 'pr/tiennou/4747' into transportPR
Diffstat (limited to 'include')
-rw-r--r-- | include/git2/remote.h | 7 | ||||
-rw-r--r-- | include/git2/repository.h | 11 | ||||
-rw-r--r-- | include/git2/sys/transport.h | 17 |
3 files changed, 32 insertions, 3 deletions
diff --git a/include/git2/remote.h b/include/git2/remote.h index 4d57eaaf7..e577f8a7b 100644 --- a/include/git2/remote.h +++ b/include/git2/remote.h @@ -738,11 +738,16 @@ typedef struct { * Extra headers for this fetch operation */ git_strarray custom_headers; + + /** + * Depth of the fetch to perform + */ + int depth; } git_fetch_options; #define GIT_FETCH_OPTIONS_VERSION 1 #define GIT_FETCH_OPTIONS_INIT { GIT_FETCH_OPTIONS_VERSION, GIT_REMOTE_CALLBACKS_INIT, GIT_FETCH_PRUNE_UNSPECIFIED, 1, \ - GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, GIT_PROXY_OPTIONS_INIT } + GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, GIT_PROXY_OPTIONS_INIT, { NULL }, -1 } /** * Initialize git_fetch_options structure diff --git a/include/git2/repository.h b/include/git2/repository.h index ec8adfb29..bbf3ae4cd 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -921,6 +921,17 @@ GIT_EXTERN(const char *) git_repository_get_namespace(git_repository *repo); GIT_EXTERN(int) git_repository_is_shallow(git_repository *repo); /** + * Determine the shallow roots of the repository + * + * This oidarray is owned by the library. Do not free it. + * + * @param out An array of shallow oids. + * @param repo The repository + * @return 0 on success, an error otherwise. + */ +GIT_EXTERN(int) git_repository_shallow_roots(git_oidarray *out, git_repository *repo); + +/** * Retrieve the configured identity to use for reflogs * * The memory is owned by the repository and must not be freed by the diff --git a/include/git2/sys/transport.h b/include/git2/sys/transport.h index fee34544f..ea8bcb64b 100644 --- a/include/git2/sys/transport.h +++ b/include/git2/sys/transport.h @@ -33,6 +33,15 @@ typedef enum { GIT_TRANSPORTFLAGS_NONE = 0, } git_transport_flags_t; +typedef struct git_shallowarray git_shallowarray; + +typedef struct { + const git_remote_head * const *refs; + size_t count; + git_shallowarray *shallow_roots; + int depth; +} git_fetch_negotiation; + struct git_transport { unsigned int version; /**< The struct version */ @@ -87,8 +96,7 @@ struct git_transport { int GIT_CALLBACK(negotiate_fetch)( git_transport *transport, git_repository *repo, - const git_remote_head * const *refs, - size_t count); + const git_fetch_negotiation *fetch_data); /** * Start downloading the packfile from the remote repository. @@ -435,6 +443,11 @@ GIT_EXTERN(int) git_smart_subtransport_ssh( git_transport *owner, void *param); +GIT_EXTERN(size_t) git_shallowarray_count(git_shallowarray *array); +GIT_EXTERN(const git_oid *) git_shallowarray_get(git_shallowarray *array, size_t idx); +GIT_EXTERN(int) git_shallowarray_add(git_shallowarray *array, git_oid *oid); +GIT_EXTERN(int) git_shallowarray_remove(git_shallowarray *array, git_oid *oid); + /** @} */ GIT_END_DECL #endif |