Introduce git_clone_options

This commit is contained in:
Ben Straub 2012-12-14 12:21:59 -08:00
parent 37ac44366b
commit 7e61044019

View File

@ -22,6 +22,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.