diff options
author | Vicent Martà <vicent@github.com> | 2012-06-07 12:30:20 -0700 |
---|---|---|
committer | Vicent Martà <vicent@github.com> | 2012-06-07 12:30:20 -0700 |
commit | 6c08e69fd92028822cb98368e564c5cb7964c072 (patch) | |
tree | e34d67219a554d58faa17e77fd13f5e568414938 /include/git2 | |
parent | b9ebcc59e7d13507d4f8faf86d68dd3ac1a4b627 (diff) | |
parent | edebceffef1d661d073b9961d13042007325832d (diff) | |
download | libgit2-6c08e69fd92028822cb98368e564c5cb7964c072.tar.gz |
Merge pull request #669 from nulltoken/topic/reset
Add git_reset()
Diffstat (limited to 'include/git2')
-rw-r--r-- | include/git2/reset.h | 44 | ||||
-rw-r--r-- | include/git2/types.h | 6 |
2 files changed, 50 insertions, 0 deletions
diff --git a/include/git2/reset.h b/include/git2/reset.h new file mode 100644 index 000000000..125178748 --- /dev/null +++ b/include/git2/reset.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2009-2012 the libgit2 contributors + * + * 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_reset_h__ +#define INCLUDE_git_reset_h__ + +/** + * @file git2/reset.h + * @brief Git reset management routines + * @ingroup Git + * @{ + */ +GIT_BEGIN_DECL + +/** + * Sets the current head to the specified commit oid and optionally + * resets the index and working tree to match. + * + * When specifying a Soft kind of reset, the head will be moved to the commit. + * + * Specifying a Mixed kind of reset will trigger a Soft reset and the index will + * be replaced with the content of the commit tree. + * + * TODO: Implement remaining kinds of resets. + * + * @param repo Repository where to perform the reset operation. + * + * @param target Object to which the Head should be moved to. This object + * must belong to the given `repo` and can either be a git_commit or a + * git_tag. When a git_tag is being passed, it should be dereferencable + * to a git_commit which oid will be used as the target of the branch. + * + * @param reset_type Kind of reset operation to perform. + * + * @return GIT_SUCCESS or an error code + */ +GIT_EXTERN(int) git_reset(git_repository *repo, const git_object *target, git_reset_type reset_type); + +/** @} */ +GIT_END_DECL +#endif diff --git a/include/git2/types.h b/include/git2/types.h index cfb0acf33..b4b48afa3 100644 --- a/include/git2/types.h +++ b/include/git2/types.h @@ -166,6 +166,12 @@ typedef enum { GIT_BRANCH_REMOTE = 2, } git_branch_t; +/** Kinds of reset operation. */ +typedef enum { + GIT_RESET_SOFT = 1, + GIT_RESET_MIXED = 2, +} git_reset_type; + typedef struct git_refspec git_refspec; typedef struct git_remote git_remote; |