summaryrefslogtreecommitdiff
path: root/include/git2/revert.h
diff options
context:
space:
mode:
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
+