diff options
author | Russell Belfer <rb@github.com> | 2013-05-16 10:38:27 -0700 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2013-05-16 10:38:27 -0700 |
commit | 58206c9ae79af8ef675e30087e5430065b078bbb (patch) | |
tree | 68fa8a68d13a3d4cccf0551f9515b5578ec63f07 /include/git2 | |
parent | 54e489c21efc19a14eac0f6f83313e3a753688f8 (diff) | |
download | libgit2-58206c9ae79af8ef675e30087e5430065b078bbb.tar.gz |
Add cat-file example and increase const use in API
This adds an example implementation that emulates git cat-file.
It is a convenient and relatively simple example of getting data
out of a repository.
Implementing this also revealed that there are a number of APIs
that are still not using const pointers to objects that really
ought to be. The main cause of this is that `git_vector_bsearch`
may need to call `git_vector_sort` before doing the search, so a
const pointer to the vector is not allowed. However, for tree
objects, with a little care, we can ensure that the vector of
tree entries is always sorted and allow lookups to take a const
pointer. Also, the missing const in commit objects just looks
like an oversight.
Diffstat (limited to 'include/git2')
-rw-r--r-- | include/git2/commit.h | 9 | ||||
-rw-r--r-- | include/git2/tree.h | 6 |
2 files changed, 10 insertions, 5 deletions
diff --git a/include/git2/commit.h b/include/git2/commit.h index a420ba635..20b345f84 100644 --- a/include/git2/commit.h +++ b/include/git2/commit.h @@ -164,7 +164,10 @@ GIT_EXTERN(unsigned int) git_commit_parentcount(const git_commit *commit); * @param n the position of the parent (from 0 to `parentcount`) * @return 0 or an error code */ -GIT_EXTERN(int) git_commit_parent(git_commit **out, git_commit *commit, unsigned int n); +GIT_EXTERN(int) git_commit_parent( + git_commit **out, + const git_commit *commit, + unsigned int n); /** * Get the oid of a specified parent for a commit. This is different from @@ -175,7 +178,9 @@ GIT_EXTERN(int) git_commit_parent(git_commit **out, git_commit *commit, unsigned * @param n the position of the parent (from 0 to `parentcount`) * @return the id of the parent, NULL on error. */ -GIT_EXTERN(const git_oid *) git_commit_parent_id(git_commit *commit, unsigned int n); +GIT_EXTERN(const git_oid *) git_commit_parent_id( + const git_commit *commit, + unsigned int n); /** * Get the commit object that is the <n>th generation ancestor diff --git a/include/git2/tree.h b/include/git2/tree.h index 6ad722048..d673f50c4 100644 --- a/include/git2/tree.h +++ b/include/git2/tree.h @@ -97,7 +97,7 @@ GIT_EXTERN(size_t) git_tree_entrycount(const git_tree *tree); * @return the tree entry; NULL if not found */ GIT_EXTERN(const git_tree_entry *) git_tree_entry_byname( - git_tree *tree, const char *filename); + const git_tree *tree, const char *filename); /** * Lookup a tree entry by its position in the tree @@ -110,7 +110,7 @@ GIT_EXTERN(const git_tree_entry *) git_tree_entry_byname( * @return the tree entry; NULL if not found */ GIT_EXTERN(const git_tree_entry *) git_tree_entry_byindex( - git_tree *tree, size_t idx); + const git_tree *tree, size_t idx); /** * Lookup a tree entry by SHA value. @@ -141,7 +141,7 @@ GIT_EXTERN(const git_tree_entry *) git_tree_entry_byoid( */ GIT_EXTERN(int) git_tree_entry_bypath( git_tree_entry **out, - git_tree *root, + const git_tree *root, const char *path); /** |