diff options
author | nulltoken <emeric.fermas@gmail.com> | 2012-05-01 13:57:45 +0200 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2012-06-07 21:27:30 +0200 |
commit | edebceffef1d661d073b9961d13042007325832d (patch) | |
tree | 9884986782471e303f5b1f5386192b751cf57feb /include/git2 | |
parent | 4c977a61e598f2230e9902aa80cfea8e89d94f88 (diff) | |
download | libgit2-edebceffef1d661d073b9961d13042007325832d.tar.gz |
Add git_reset()
Currently supports Soft and Mixed modes.
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; |