summaryrefslogtreecommitdiff
path: root/include/git2/revert.h
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@microsoft.com>2013-12-02 11:15:27 -0500
committerEdward Thomson <ethomson@edwardthomson.com>2013-12-02 16:57:41 -0600
commit300d192f7ed45112121f2a35d5ca80a4913c7aad (patch)
treea3000995c66950ae009cd3e7f24153bf3683fb78 /include/git2/revert.h
parent14984af6cb9906746d2c64c5df7542ecd7406b16 (diff)
downloadlibgit2-300d192f7ed45112121f2a35d5ca80a4913c7aad.tar.gz
Introduce git_revert to revert a single commit
Diffstat (limited to 'include/git2/revert.h')
-rw-r--r--include/git2/revert.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/include/git2/revert.h b/include/git2/revert.h
new file mode 100644
index 000000000..fe84238c5
--- /dev/null
+++ b/include/git2/revert.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * 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_revert_h__
+#define INCLUDE_git_revert_h__
+
+#include "common.h"
+#include "types.h"
+#include "merge.h"
+
+/**
+ * @file git2/revert.h
+ * @brief Git revert routines
+ * @defgroup git_revert Git revert routines
+ * @ingroup Git
+ * @{
+ */
+GIT_BEGIN_DECL
+
+typedef struct {
+ unsigned int version;
+
+ /** For merge commits, the "mainline" is treated as the parent. */
+ unsigned int mainline;
+
+ git_merge_tree_opts merge_tree_opts;
+ git_checkout_opts checkout_opts;
+} git_revert_opts;
+
+#define GIT_REVERT_OPTS_VERSION 1
+#define GIT_REVERT_OPTS_INIT {GIT_REVERT_OPTS_VERSION, 0, GIT_MERGE_TREE_OPTS_INIT, GIT_CHECKOUT_OPTS_INIT}
+
+/**
+* Reverts the given commits, producing changes in the working directory.
+*
+* @param repo the repository to revert
+* @param commits the commits to revert
+* @param commits_len the number of commits to revert
+* @param flags merge flags
+*/
+GIT_EXTERN(int) git_revert(
+ git_repository *repo,
+ git_commit *commit,
+ const git_revert_opts *given_opts);
+
+/** @} */
+GIT_END_DECL
+#endif
+