diff options
author | Ben Straub <bs@github.com> | 2012-12-14 12:21:59 -0800 |
---|---|---|
committer | Ben Straub <bs@github.com> | 2012-12-14 12:30:57 -0800 |
commit | 7e610440194615fe5970f5f15266893f02a7f6aa (patch) | |
tree | b88d46b27ec634808fddf618ae98be75151bc3d4 /include/git2/clone.h | |
parent | 37ac44366bc2a400c993d6b3367bfdd3262e840c (diff) | |
download | libgit2-7e610440194615fe5970f5f15266893f02a7f6aa.tar.gz |
Introduce git_clone_options
Diffstat (limited to 'include/git2/clone.h')
-rw-r--r-- | include/git2/clone.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/git2/clone.h b/include/git2/clone.h index 8de8e0e29..5dcfeeb0b 100644 --- a/include/git2/clone.h +++ b/include/git2/clone.h @@ -23,6 +23,39 @@ GIT_BEGIN_DECL /** + * Clone options structure + * + * Use zeros to indicate default settings. It's easiest to use the + * `GIT_CLONE_OPTIONS_INIT` macro: + * + * git_clone_options opts = GIT_CLONE_OPTIONS_INIT; + * + * - `out` is a pointer that receives the resulting repository object + * - `origin_remote` is a remote which will act as the initial fetch source + * - `workdir_path` is local directory to clone to + * - `fetch_progress_cb` is optional callback for fetch progress. Be aware that + * this is called inline with network and indexing operations, so performance + * may be affected. + * - `fetch_progress_payload` is payload for fetch_progress_cb + * - `checkout_opts` is options for the checkout step. If NULL, no checkout + * is performed + */ + +typedef struct git_clone_options { + unsigned int version; + + git_repository **out; + git_remote *origin_remote; + const char *workdir_path; + git_checkout_opts *checkout_opts; + git_transfer_progress_callback fetch_progress_cb; + void *fetch_progress_payload; +} git_clone_options; + +#define GIT_CLONE_OPTIONS_VERSION 1 +#define GIT_CLONE_OPTIONS_INIT {GIT_CLONE_OPTIONS_VERSION} + +/** * Clone a remote repository, and checkout the branch pointed to by the remote * HEAD. * |