diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/git2/commit.h | 11 | ||||
-rw-r--r-- | include/git2/errors.h | 1 | ||||
-rw-r--r-- | include/git2/revert.h | 52 |
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 + |