Commit 7e610440 by Ben Straub

Introduce git_clone_options

parent 37ac4436
......@@ -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.
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment