summaryrefslogtreecommitdiff
path: root/include/git2/clone.h
diff options
context:
space:
mode:
authorBen Straub <bstraub@github.com>2012-06-15 13:14:43 -0700
committerBen Straub <bstraub@github.com>2012-06-21 09:53:44 -0700
commit764df57e82c337a70f55e320bf31acb50c6ffacd (patch)
tree8d8deca8f9c6a4d8fe67e2ab715725e8da34c5af /include/git2/clone.h
parent9311423c34bbd369928152c6a2b669204276ddd1 (diff)
downloadlibgit2-764df57e82c337a70f55e320bf31acb50c6ffacd.tar.gz
Add git_clone and git_clone_bare.
So far they only create a repo, setup the "origin" remote, and fetch. The API probably needs work as well; there's no way to get progress information at this point. Also uncovered a shortcoming; git_remote_download doesn't fetch over local transport.
Diffstat (limited to 'include/git2/clone.h')
-rw-r--r--include/git2/clone.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/include/git2/clone.h b/include/git2/clone.h
new file mode 100644
index 00000000..7936282f
--- /dev/null
+++ b/include/git2/clone.h
@@ -0,0 +1,45 @@
+/*
+ * 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"
+
+
+/**
+ * @file git2/clone.h
+ * @brief Git cloning routines
+ * @defgroup git_clone Git cloning routines
+ * @ingroup Git
+ * @{
+ */
+GIT_BEGIN_DECL
+
+/**
+ * TODO
+ *
+ * @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
+ * @return 0 on success, GIT_ERROR otherwise (use git_error_last for information about the error)
+ */
+GIT_EXTERN(int) git_clone(git_repository **out, const char *origin_url, const char *dest_path);
+
+/**
+ * TODO
+ *
+ * @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
+ * @return 0 on success, GIT_ERROR otherwise (use git_error_last for information about the error)
+ */
+GIT_EXTERN(int) git_clone_bare(git_repository **out, const char *origin_url, const char *dest_path);
+
+/** @} */
+GIT_END_DECL
+#endif