diff options
author | Vicent Marti <tanoku@gmail.com> | 2010-09-12 23:43:21 +0300 |
---|---|---|
committer | Vicent Marti <tanoku@gmail.com> | 2010-09-12 23:43:21 +0300 |
commit | 46f8566a13564f0566a80b3df5950d1938cd222b (patch) | |
tree | 8d7f32f695ce6d0a7ab79841bfd44c3b8031e786 | |
parent | 370ce56910b9e506b22c7b673ef630a046b90126 (diff) | |
download | libgit2-46f8566a13564f0566a80b3df5950d1938cd222b.tar.gz |
Add methods to access internal attributes in git_repo
Added several methods to access:
- The ODB behind a repo
- The SHA1 id behind a generic repo object
- The type of a generic repo object
Signed-off-by: Vicent Marti <tanoku@gmail.com>
-rw-r--r-- | src/git/repository.h | 23 | ||||
-rw-r--r-- | src/repository.c | 18 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/git/repository.h b/src/git/repository.h index 001e4e9f..a61e5b6c 100644 --- a/src/git/repository.h +++ b/src/git/repository.h @@ -49,6 +49,29 @@ GIT_EXTERN(git_repository *) git_repository_alloc(git_odb *odb); */ GIT_EXTERN(git_repository_object *) git_repository_lookup(git_repository *repo, const git_oid *id, git_otype type); +/** + * Get the object database behind a Git repository + * + * @param repo a repository object + * @return a pointer to the object db + */ +GIT_EXTERN(git_odb *) git_repository_database(git_repository *repo); + +/** + * Get the id (SHA1) of a repository object + * + * @param obj the repository object + * @return the SHA1 id + */ +const git_oid *git_repository_object_id(git_repository_object *obj); + +/** + * Get the object type of an object + * + * @param obj the repository object + * @return the object's type + */ +git_otype git_repository_object_type(git_repository_object *obj); /** * Free a reference to one of the objects in the repostory. diff --git a/src/repository.c b/src/repository.c index 86f2216c..3f07bd60 100644 --- a/src/repository.c +++ b/src/repository.c @@ -138,6 +138,24 @@ void git_repository_object_free(git_repository_object *object) } } +git_odb *git_repository_database(git_repository *repo) +{ + assert(repo); + return repo->db; +} + +const git_oid *git_repository_object_id(git_repository_object *obj) +{ + assert(obj); + return &obj->id; +} + +git_otype git_repository_object_type(git_repository_object *obj) +{ + assert(obj); + return obj->dbo.type; +} + git_repository_object *git_repository_lookup(git_repository *repo, const git_oid *id, git_otype type) { static const size_t object_sizes[] = { |