/* * Copyright (C) 2012 the libgit2 contributors * * This file is part of libgit2, distributed under the GNU GPL v2 with * a Linking Exception. For full terms see the included COPYING file. */ #ifndef INCLUDE_git_clone_h__ #define INCLUDE_git_clone_h__ #include "common.h" #include "types.h" #include "indexer.h" #include "checkout.h" /** * @file git2/clone.h * @brief Git cloning routines * @defgroup git_clone Git cloning routines * @ingroup Git * @{ */ GIT_BEGIN_DECL /** * Clone a remote repository, and checkout the branch pointed to by the remote * HEAD. * * @param out pointer that will receive the resulting repository object * @param origin_url repository to clone from * @param workdir_path local directory to clone to * @param fetch_progress_cb optional callback for fetch progress. Be aware that * this is called inline with network and indexing operations, so performance * may be affected. * @param fetch_progress_payload payload for fetch_progress_cb * @param checkout_opts options for the checkout step. If NULL, no checkout * is performed * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information * about the error) */ GIT_EXTERN(int) git_clone( git_repository **out, const char *origin_url, const char *workdir_path, git_checkout_opts *checkout_opts, git_transfer_progress_callback fetch_progress_cb, void *fetch_progress_payload); /** * Create a bare clone of a remote repository. * * @param out pointer that will receive the resulting repository object * @param origin_url repository to clone from * @param dest_path local directory to clone to * @param fetch_progress_cb optional callback for fetch progress. Be aware that * this is called inline with network and indexing operations, so performance * may be affected. * @param fetch_progress_payload payload for fetch_progress_cb * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information about the error) */ GIT_EXTERN(int) git_clone_bare( git_repository **out, const char *origin_url, const char *dest_path, git_transfer_progress_callback fetch_progress_cb, void *fetch_progress_payload); /** @} */ GIT_END_DECL #endif