mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-19 20:37:41 +00:00
API updates for notes.h/c.
This commit is contained in:
parent
05a3ab61c2
commit
de5596bfd6
@ -18,21 +18,40 @@
|
|||||||
*/
|
*/
|
||||||
GIT_BEGIN_DECL
|
GIT_BEGIN_DECL
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic components of a note
|
||||||
|
*
|
||||||
|
* - Oid of the blob containing the message
|
||||||
|
* - Oid of the git object being annotated
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
git_oid blob_oid;
|
||||||
|
git_oid annotated_object_oid;
|
||||||
|
} git_note_data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback for git_note_foreach.
|
||||||
|
*/
|
||||||
|
typedef int (*git_note_foreach_cb)(git_note_data *note_data, void *payload);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read the note for an object
|
* Read the note for an object
|
||||||
*
|
*
|
||||||
* The note must be freed manually by the user.
|
* The note must be freed manually by the user.
|
||||||
*
|
*
|
||||||
* @param note pointer to the read note; NULL in case of error
|
* @param out pointer to the read note; NULL in case of error
|
||||||
* @param repo repository where to look up the note
|
* @param repo repository where to look up the note
|
||||||
* @param notes_ref canonical name of the reference to use (optional);
|
* @param notes_ref canonical name of the reference to use (optional); defaults to
|
||||||
* defaults to "refs/notes/commits"
|
* "refs/notes/commits"
|
||||||
* @param oid OID of the git object to read the note from
|
* @param oid OID of the git object to read the note from
|
||||||
*
|
*
|
||||||
* @return 0 or an error code
|
* @return 0 or an error code
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_note_read(git_note **note, git_repository *repo,
|
GIT_EXTERN(int) git_note_read(
|
||||||
const char *notes_ref, const git_oid *oid);
|
git_note **out,
|
||||||
|
git_repository *repo,
|
||||||
|
const char *notes_ref,
|
||||||
|
const git_oid *oid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the note message
|
* Get the note message
|
||||||
@ -40,7 +59,7 @@ GIT_EXTERN(int) git_note_read(git_note **note, git_repository *repo,
|
|||||||
* @param note
|
* @param note
|
||||||
* @return the note message
|
* @return the note message
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(const char *) git_note_message(git_note *note);
|
GIT_EXTERN(const char *) git_note_message(const git_note *note);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,7 +68,7 @@ GIT_EXTERN(const char *) git_note_message(git_note *note);
|
|||||||
* @param note
|
* @param note
|
||||||
* @return the note object OID
|
* @return the note object OID
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(const git_oid *) git_note_oid(git_note *note);
|
GIT_EXTERN(const git_oid *) git_note_oid(const git_note *note);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a note for an object
|
* Add a note for an object
|
||||||
@ -65,10 +84,14 @@ GIT_EXTERN(const git_oid *) git_note_oid(git_note *note);
|
|||||||
*
|
*
|
||||||
* @return 0 or an error code
|
* @return 0 or an error code
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_note_create(git_oid *out, git_repository *repo,
|
GIT_EXTERN(int) git_note_create(
|
||||||
git_signature *author, git_signature *committer,
|
git_oid *out,
|
||||||
const char *notes_ref, const git_oid *oid,
|
git_repository *repo,
|
||||||
const char *note);
|
const git_signature *author,
|
||||||
|
const git_signature *committer,
|
||||||
|
const char *notes_ref,
|
||||||
|
const git_oid *oid,
|
||||||
|
const char *note);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -83,9 +106,12 @@ GIT_EXTERN(int) git_note_create(git_oid *out, git_repository *repo,
|
|||||||
*
|
*
|
||||||
* @return 0 or an error code
|
* @return 0 or an error code
|
||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_note_remove(git_repository *repo, const char *notes_ref,
|
GIT_EXTERN(int) git_note_remove(
|
||||||
git_signature *author, git_signature *committer,
|
git_repository *repo,
|
||||||
const git_oid *oid);
|
const char *notes_ref,
|
||||||
|
const git_signature *author,
|
||||||
|
const git_signature *committer,
|
||||||
|
const git_oid *oid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Free a git_note object
|
* Free a git_note object
|
||||||
@ -104,17 +130,6 @@ GIT_EXTERN(void) git_note_free(git_note *note);
|
|||||||
*/
|
*/
|
||||||
GIT_EXTERN(int) git_note_default_ref(const char **out, git_repository *repo);
|
GIT_EXTERN(int) git_note_default_ref(const char **out, git_repository *repo);
|
||||||
|
|
||||||
/**
|
|
||||||
* Basic components of a note
|
|
||||||
*
|
|
||||||
* - Oid of the blob containing the message
|
|
||||||
* - Oid of the git object being annotated
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
git_oid blob_oid;
|
|
||||||
git_oid annotated_object_oid;
|
|
||||||
} git_note_data;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loop over all the notes within a specified namespace
|
* Loop over all the notes within a specified namespace
|
||||||
* and issue a callback for each one.
|
* and issue a callback for each one.
|
||||||
@ -134,7 +149,7 @@ typedef struct {
|
|||||||
GIT_EXTERN(int) git_note_foreach(
|
GIT_EXTERN(int) git_note_foreach(
|
||||||
git_repository *repo,
|
git_repository *repo,
|
||||||
const char *notes_ref,
|
const char *notes_ref,
|
||||||
int (*note_cb)(git_note_data *note_data, void *payload),
|
git_note_foreach_cb note_cb,
|
||||||
void *payload
|
void *payload
|
||||||
);
|
);
|
||||||
|
|
||||||
|
33
src/notes.c
33
src/notes.c
@ -263,8 +263,8 @@ static int insert_note_in_tree_enotfound_cb(git_tree **out,
|
|||||||
|
|
||||||
static int note_write(git_oid *out,
|
static int note_write(git_oid *out,
|
||||||
git_repository *repo,
|
git_repository *repo,
|
||||||
git_signature *author,
|
const git_signature *author,
|
||||||
git_signature *committer,
|
const git_signature *committer,
|
||||||
const char *notes_ref,
|
const char *notes_ref,
|
||||||
const char *note,
|
const char *note,
|
||||||
git_tree *commit_tree,
|
git_tree *commit_tree,
|
||||||
@ -343,9 +343,9 @@ cleanup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int note_remove(git_repository *repo,
|
static int note_remove(git_repository *repo,
|
||||||
git_signature *author, git_signature *committer,
|
const git_signature *author, const git_signature *committer,
|
||||||
const char *notes_ref, git_tree *tree,
|
const char *notes_ref, git_tree *tree,
|
||||||
const char *target, git_commit **parents)
|
const char *target, git_commit **parents)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
git_tree *tree_after_removal = NULL;
|
git_tree *tree_after_removal = NULL;
|
||||||
@ -442,9 +442,12 @@ cleanup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int git_note_create(
|
int git_note_create(
|
||||||
git_oid *out, git_repository *repo,
|
git_oid *out,
|
||||||
git_signature *author, git_signature *committer,
|
git_repository *repo,
|
||||||
const char *notes_ref, const git_oid *oid,
|
const git_signature *author,
|
||||||
|
const git_signature *committer,
|
||||||
|
const char *notes_ref,
|
||||||
|
const git_oid *oid,
|
||||||
const char *note)
|
const char *note)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
@ -461,7 +464,7 @@ int git_note_create(
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
error = note_write(out, repo, author, committer, notes_ref,
|
error = note_write(out, repo, author, committer, notes_ref,
|
||||||
note, tree, target, &commit);
|
note, tree, target, &commit);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
git__free(target);
|
git__free(target);
|
||||||
@ -471,8 +474,8 @@ cleanup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
int git_note_remove(git_repository *repo, const char *notes_ref,
|
int git_note_remove(git_repository *repo, const char *notes_ref,
|
||||||
git_signature *author, git_signature *committer,
|
const git_signature *author, const git_signature *committer,
|
||||||
const git_oid *oid)
|
const git_oid *oid)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
char *target = NULL;
|
char *target = NULL;
|
||||||
@ -501,13 +504,13 @@ int git_note_default_ref(const char **out, git_repository *repo)
|
|||||||
return note_get_default_ref(out, repo);
|
return note_get_default_ref(out, repo);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * git_note_message(git_note *note)
|
const char * git_note_message(const git_note *note)
|
||||||
{
|
{
|
||||||
assert(note);
|
assert(note);
|
||||||
return note->message;
|
return note->message;
|
||||||
}
|
}
|
||||||
|
|
||||||
const git_oid * git_note_oid(git_note *note)
|
const git_oid * git_note_oid(const git_note *note)
|
||||||
{
|
{
|
||||||
assert(note);
|
assert(note);
|
||||||
return ¬e->oid;
|
return ¬e->oid;
|
||||||
@ -525,7 +528,7 @@ void git_note_free(git_note *note)
|
|||||||
static int process_entry_path(
|
static int process_entry_path(
|
||||||
const char* entry_path,
|
const char* entry_path,
|
||||||
const git_oid *note_oid,
|
const git_oid *note_oid,
|
||||||
int (*note_cb)(git_note_data *note_data, void *payload),
|
git_note_foreach_cb note_cb,
|
||||||
void *payload)
|
void *payload)
|
||||||
{
|
{
|
||||||
int error = -1;
|
int error = -1;
|
||||||
@ -581,7 +584,7 @@ cleanup:
|
|||||||
int git_note_foreach(
|
int git_note_foreach(
|
||||||
git_repository *repo,
|
git_repository *repo,
|
||||||
const char *notes_ref,
|
const char *notes_ref,
|
||||||
int (*note_cb)(git_note_data *note_data, void *payload),
|
git_note_foreach_cb note_cb,
|
||||||
void *payload)
|
void *payload)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
|
Loading…
Reference in New Issue
Block a user