summaryrefslogtreecommitdiff
path: root/include/git2
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@dwim.me>2013-12-21 17:18:21 +0000
committerCarlos Martín Nieto <cmn@dwim.me>2014-05-28 15:40:20 +0200
commit4386d80be108102548d4ff52c875aedfa94e7412 (patch)
tree776b4eeb7aeffd59c87606031b2a2e78661cea13 /include/git2
parent433ba614a2ef948008510a1b1189702d515d2fc4 (diff)
downloadlibgit2-4386d80be108102548d4ff52c875aedfa94e7412.tar.gz
clone: perform a "local clone" when given a local path
When git is given such a path, it will perform a "local clone", bypassing the git-aware protocol and simply copying over all objects that exist in the source. Copy this behaviour when given a local path.
Diffstat (limited to 'include/git2')
-rw-r--r--include/git2/clone.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/git2/clone.h b/include/git2/clone.h
index 985c04bf6..ceb1a53bb 100644
--- a/include/git2/clone.h
+++ b/include/git2/clone.h
@@ -123,6 +123,31 @@ GIT_EXTERN(int) git_clone_into(
const char *branch,
const git_signature *signature);
+/**
+ * Perform a local clone into a repository
+ *
+ * A "local clone" bypasses any git-aware protocols and simply copies
+ * over the object database from the source repository. It is often
+ * faster than a git-aware clone, but no verification of the data is
+ * performed, and can copy over too much data.
+ *
+ * @param repo the repository to use
+ * @param remote the remote repository to clone from
+ * @param co_opts options to use during checkout
+ * @param branch the branch to checkout after the clone, pass NULL for the
+ * remote's default branch
+ * @param signature the identity used when updating the reflog
+ * @return 0 on success, any non-zero return value from a callback
+ * function, or a negative value to indicate an error (use
+ * `giterr_last` for a detailed error message)
+ */
+GIT_EXTERN(int) git_clone_local_into(
+ git_repository *repo,
+ git_remote *remote,
+ const git_checkout_options *co_opts,
+ const char *branch,
+ const git_signature *signature);
+
/** @} */
GIT_END_DECL
#endif