diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-03-06 23:51:40 +0100 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-03-16 16:57:30 +0100 |
commit | 62d38a1ddb8081f8b46e7ff6e21ebeb0014162d6 (patch) | |
tree | 9db11e71533062a0ec6b55e1e767235469390ec0 /include/git2 | |
parent | d675982a15388d8c413acda139b4662062cf3286 (diff) | |
download | libgit2-62d38a1ddb8081f8b46e7ff6e21ebeb0014162d6.tar.gz |
Add annotated commit versions of reflog-modifying functions
We do not always want to put the id directly into the reflog, but we
want to speicfy what a user typed. For this use-case we provide
annotated version of a few functions which let the caller specify what
user-friendly name was used when asking for the operation.
Diffstat (limited to 'include/git2')
-rw-r--r-- | include/git2/branch.h | 18 | ||||
-rw-r--r-- | include/git2/repository.h | 16 | ||||
-rw-r--r-- | include/git2/reset.h | 18 |
3 files changed, 52 insertions, 0 deletions
diff --git a/include/git2/branch.h b/include/git2/branch.h index 06f4d2c68..34354f4e5 100644 --- a/include/git2/branch.h +++ b/include/git2/branch.h @@ -55,6 +55,24 @@ GIT_EXTERN(int) git_branch_create( int force); /** + * Create a new branch pointing at a target commit + * + * This behaves like `git_branch_create()` but takes an annotated + * commit, which lets you specify which extended sha syntax string was + * specified by a user, allowing for more exact reflog messages. + * + * See the documentation for `git_branch_create()`. + * + * @see git_branch_create + */ +GIT_EXTERN(int) git_branch_create_from_annotated( + git_reference **ref_out, + git_repository *repository, + const char *branch_name, + const git_annotated_commit *commit, + int force); + +/** * Delete an existing branch reference. * * If the branch is successfully deleted, the passed reference diff --git a/include/git2/repository.h b/include/git2/repository.h index e3ff3b375..ce56fef0f 100644 --- a/include/git2/repository.h +++ b/include/git2/repository.h @@ -630,6 +630,22 @@ GIT_EXTERN(int) git_repository_set_head_detached( const git_oid* commitish); /** + * Make the repository HEAD directly point to the Commit. + * + * This behaves like `git_repository_set_head_detached()` but takes an + * annotated commit, which lets you specify which extended sha syntax + * string was specified by a user, allowing for more exact reflog + * messages. + * + * See the documentation for `git_repository_set_head_detached()`. + * + * @see git_repository_set_head_detached + */ +GIT_EXTERN(int) git_repository_set_head_detached_from_annotated( + git_repository *repo, + const git_annotated_commit *commitish); + +/** * Detach the HEAD. * * If the HEAD is already detached and points to a Commit, 0 is returned. diff --git a/include/git2/reset.h b/include/git2/reset.h index 93ac0b29c..c03dbed8c 100644 --- a/include/git2/reset.h +++ b/include/git2/reset.h @@ -65,6 +65,24 @@ GIT_EXTERN(int) git_reset( git_checkout_options *checkout_opts); /** + * Sets the current head to the specified commit oid and optionally + * resets the index and working tree to match. + * + * This behaves like `git_reset()` but takes an annotated commit, + * which lets you specify which extended sha syntax string was + * specified by a user, allowing for more exact reflog messages. + * + * See the documentation for `git_reset()`. + * + * @see git_reset + */ +GIT_EXTERN(int) git_reset_from_annotated( + git_repository *repo, + git_annotated_commit *commit, + git_reset_t reset_type, + git_checkout_options *checkout_opts); + +/** * Updates some entries in the index from the target commit tree. * * The scope of the updated entries is determined by the paths |