diff options
author | nulltoken <emeric.fermas@gmail.com> | 2013-05-13 16:21:09 +0200 |
---|---|---|
committer | Carlos MartÃn Nieto <cmn@dwim.me> | 2013-11-23 13:34:46 +0100 |
commit | bba25f39a29c7913bab97fa6e8ac2ccb78ea33b6 (patch) | |
tree | 7ad4b0dc4d045e2614ac3057a2da27841dd74699 /include/git2/refs.h | |
parent | 92f95a170c76ffde80010cbbd6b03c0bf8dded1d (diff) | |
download | libgit2-bba25f39a29c7913bab97fa6e8ac2ccb78ea33b6.tar.gz |
refs: Introduce git_reference_create_with_log()
Diffstat (limited to 'include/git2/refs.h')
-rw-r--r-- | include/git2/refs.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/git2/refs.h b/include/git2/refs.h index 4041947f6..049b7fa72 100644 --- a/include/git2/refs.h +++ b/include/git2/refs.h @@ -131,6 +131,49 @@ GIT_EXTERN(int) git_reference_symbolic_create(git_reference **out, git_repositor GIT_EXTERN(int) git_reference_create(git_reference **out, git_repository *repo, const char *name, const git_oid *id, int force); /** + * Create a new direct reference and update the reflog with a given + * message. + * + * A direct reference (also called an object id reference) refers directly + * to a specific object id (a.k.a. OID or SHA) in the repository. The id + * permanently refers to the object (although the reference itself can be + * moved). For example, in libgit2 the direct ref "refs/tags/v0.17.0" + * refers to OID 5b9fac39d8a76b9139667c26a63e6b3f204b3977. + * + * The direct reference will be created in the repository and written to + * the disk. The generated reference object must be freed by the user. + * + * Valid reference names must follow one of two patterns: + * + * 1. Top-level names must contain only capital letters and underscores, + * and must begin and end with a letter. (e.g. "HEAD", "ORIG_HEAD"). + * 2. Names prefixed with "refs/" can be almost anything. You must avoid + * the characters '~', '^', ':', '\\', '?', '[', and '*', and the + * sequences ".." and "@{" which have special meaning to revparse. + * + * This function will return an error if a reference already exists with the + * given name unless `force` is true, in which case it will be overwritten. + * + * @param out Pointer to the newly created reference + * @param repo Repository where that reference will live + * @param name The name of the reference + * @param id The object id pointed to by the reference. + * @param force Overwrite existing references + * @param signature The identity that will used to populate the reflog entry + * @param log_message The one line long message that has to be appended + * to the reflog + * @return 0 on success, EEXISTS, EINVALIDSPEC or an error code + */ +GIT_EXTERN(int) git_reference_create_with_log( + git_reference **out, + git_repository *repo, + const char *name, + const git_oid *id, + int force, + const git_signature *signature, + const char *log_message); + +/** * Get the OID pointed to by a direct reference. * * Only available if the reference is direct (i.e. an object id reference, |