diff options
| author | Vicent Martà <vicent@github.com> | 2013-12-03 02:11:55 -0800 |
|---|---|---|
| committer | Vicent Martà <vicent@github.com> | 2013-12-03 02:11:55 -0800 |
| commit | db0a7e39b3b168818cc71c409b1375a818c958c5 (patch) | |
| tree | a4b66b917439ad930aa18d1b104cb8eda13aca66 /include/git2 | |
| parent | 96fb6a647f07e59b44551b23c000a44185cf5879 (diff) | |
| parent | bab0b9f2d21d993c3f25ee00ce2d243a4dc0de93 (diff) | |
| download | libgit2-db0a7e39b3b168818cc71c409b1375a818c958c5.tar.gz | |
Merge pull request #1977 from ethomson/revert
Revert support for a single commit
Diffstat (limited to 'include/git2')
| -rw-r--r-- | include/git2/commit.h | 11 | ||||
| -rw-r--r-- | include/git2/errors.h | 1 | ||||
| -rw-r--r-- | include/git2/repository.h | 6 | ||||
| -rw-r--r-- | include/git2/revert.h | 52 |
4 files changed, 67 insertions, 3 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/repository.h b/include/git2/repository.h index b4d561992..c6bd4dca4 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -488,13 +488,13 @@ GIT_EXTERN(int) git_repository_message(char *out, size_t len, git_repository *re GIT_EXTERN(int) git_repository_message_remove(git_repository *repo); /** - * Remove all the metadata associated with an ongoing git merge, including - * MERGE_HEAD, MERGE_MSG, etc. + * Remove all the metadata associated with an ongoing command like merge, + * revert, cherry-pick, etc. For example: MERGE_HEAD, MERGE_MSG, etc. * * @param repo A repository object * @return 0 on success, or error */ -GIT_EXTERN(int) git_repository_merge_cleanup(git_repository *repo); +GIT_EXTERN(int) git_repository_state_cleanup(git_repository *repo); typedef int (*git_repository_fetchhead_foreach_cb)(const char *ref_name, const char *remote_url, 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 + |
