summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/git2/commit.h11
-rw-r--r--include/git2/errors.h1
-rw-r--r--include/git2/revert.h52
3 files changed, 64 insertions, 0 deletions
diff --git a/include/git2/commit.h b/include/git2/commit.h
index a08cf1c6c..8b03df0a9 100644
--- a/include/git2/commit.h
+++ b/include/git2/commit.h
@@ -117,6 +117,17 @@ GIT_EXTERN(const char *) git_commit_message(const git_commit *commit);
GIT_EXTERN(const char *) git_commit_message_raw(const git_commit *commit);
/**
+ * Get the short "summary" of the git commit message.
+ *
+ * The returned message is the summary of the commit, comprising the
+ * first paragraph of the message with whitespace trimmed and squashed.
+ *
+ * @param commit a previously loaded commit.
+ * @return the summary of a commit or NULL on error
+ */
+GIT_EXTERN(const char *) git_commit_summary(git_commit *commit);
+
+/**
* Get the commit time (i.e. committer time) of a commit.
*
* @param commit a previously loaded commit.
diff --git a/include/git2/errors.h b/include/git2/errors.h
index be7a31d8e..f1a8ea1ae 100644
--- a/include/git2/errors.h
+++ b/include/git2/errors.h
@@ -71,6 +71,7 @@ typedef enum {
GITERR_MERGE,
GITERR_SSH,
GITERR_FILTER,
+ GITERR_REVERT,
} git_error_t;
/**
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
+