diff options
Diffstat (limited to 'include/git2')
| -rw-r--r-- | include/git2/clone.h | 35 | 
1 files changed, 32 insertions, 3 deletions
diff --git a/include/git2/clone.h b/include/git2/clone.h index 2b5381e4d..72fba0ee2 100644 --- a/include/git2/clone.h +++ b/include/git2/clone.h @@ -11,6 +11,7 @@  #include "types.h"  #include "indexer.h"  #include "checkout.h" +#include "remote.h"  /** @@ -36,8 +37,26 @@ GIT_BEGIN_DECL   *   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 + * - `checkout_opts` is options for the checkout step. If NULL, no checkout is + *   performed + * + *   ** "origin" remote options: ** + * - `remote_name` is the name given to the "origin" remote.  The default is + *   "origin". + * - `pushurl` is a URL to be used for pushing.  NULL means use the fetch url. + * - `fetch_spec` is the fetch specification to be used for fetching.  NULL + *   results in the same behavior as GIT_REMOTE_DEFAULT_FETCH. + * - `push_spec` is the fetch specification to be used for pushing.  NULL means + *   use the same spec as for fetching. + * - `cred_acquire_cb` is a callback to be used if credentials are required + *   during the initial fetch. + * - `cred_acquire_payload` is the payload for the above callback. + * - `transport` is a custom transport to be used for the initial fetch.  NULL + *   means use the transport autodetected from the URL. + * - `remote_callbacks` may be used to specify custom progress callbacks for + *   the origin remote before the fetch is initiated. + * - `remote_autotag` may be used to specify the autotag setting before the + *   initial fetch.   */  typedef struct git_clone_options { @@ -47,6 +66,16 @@ typedef struct git_clone_options {  	git_transfer_progress_callback fetch_progress_cb;  	void *fetch_progress_payload;  	git_checkout_opts *checkout_opts; + +	const char *remote_name; +	const char *pushurl; +	const char *fetch_spec; +	const char *push_spec; +	git_cred_acquire_cb cred_acquire_cb; +	void *cred_acquire_payload; +	git_transport *transport; +	git_remote_callbacks *remote_callbacks; +	git_remote_autotag_option_t remote_autotag;  } git_clone_options;  #define GIT_CLONE_OPTIONS_VERSION 1 @@ -66,7 +95,7 @@ typedef struct git_clone_options {   */  GIT_EXTERN(int) git_clone(  		git_repository **out, -		git_remote *origin, +		const char *url,  		const char *local_path,  		const git_clone_options *options);  | 
