summaryrefslogtreecommitdiff
path: root/include/git2/reset.h
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-05-01 13:57:45 +0200
committernulltoken <emeric.fermas@gmail.com>2012-06-07 21:27:30 +0200
commitedebceffef1d661d073b9961d13042007325832d (patch)
tree9884986782471e303f5b1f5386192b751cf57feb /include/git2/reset.h
parent4c977a61e598f2230e9902aa80cfea8e89d94f88 (diff)
downloadlibgit2-edebceffef1d661d073b9961d13042007325832d.tar.gz
Add git_reset()
Currently supports Soft and Mixed modes.
Diffstat (limited to 'include/git2/reset.h')
-rw-r--r--include/git2/reset.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/include/git2/reset.h b/include/git2/reset.h
new file mode 100644
index 000000000..125178748
--- /dev/null
+++ b/include/git2/reset.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2009-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_reset_h__
+#define INCLUDE_git_reset_h__
+
+/**
+ * @file git2/reset.h
+ * @brief Git reset management routines
+ * @ingroup Git
+ * @{
+ */
+GIT_BEGIN_DECL
+
+/**
+ * Sets the current head to the specified commit oid and optionally
+ * resets the index and working tree to match.
+ *
+ * When specifying a Soft kind of reset, the head will be moved to the commit.
+ *
+ * Specifying a Mixed kind of reset will trigger a Soft reset and the index will
+ * be replaced with the content of the commit tree.
+ *
+ * TODO: Implement remaining kinds of resets.
+ *
+ * @param repo Repository where to perform the reset operation.
+ *
+ * @param target Object to which the Head should be moved to. This object
+ * must belong to the given `repo` and can either be a git_commit or a
+ * git_tag. When a git_tag is being passed, it should be dereferencable
+ * to a git_commit which oid will be used as the target of the branch.
+ *
+ * @param reset_type Kind of reset operation to perform.
+ *
+ * @return GIT_SUCCESS or an error code
+ */
+GIT_EXTERN(int) git_reset(git_repository *repo, const git_object *target, git_reset_type reset_type);
+
+/** @} */
+GIT_END_DECL
+#endif