summaryrefslogtreecommitdiffstats
path: root/volgit.c
diff options
context:
space:
mode:
Diffstat (limited to 'volgit.c')
-rw-r--r--volgit.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/volgit.c b/volgit.c
index 76ae0d7..f279e55 100644
--- a/volgit.c
+++ b/volgit.c
@@ -1,21 +1,59 @@
#include <stdio.h>
#include <git2.h>
+void print_commits(const git_reference *branch, git_repository *repo)
+{
+ const git_oid *id;
+ git_revwalk *walker;
+ git_oid current;
+
+ git_revwalk_new(&walker,repo);
+ id=git_reference_target(branch);
+ git_revwalk_push(walker,id);
+
+ while(!git_revwalk_next(&current,walker))
+ {
+ printf("%s\n",git_oid_tostr_s(&current));
+ }
+
+
+}
int main()
{
+ const char *name;
+
git_branch_iterator *it;
git_repository *repo;
+ git_reference *ref;
+ git_branch_t branch_type=GIT_BRANCH_LOCAL;
+ git_libgit2_init();
git_repository_open(&repo,".");
- git_branch_iterator_new(&it,repo,GIT_BRANCH_LOCAL);
+ git_branch_iterator_new(&it,repo,branch_type);
+
+
+ while(git_branch_next(&ref,&branch_type,it)==0)
+ {
+ git_branch_name(&name,ref);
+ if(name)
+ {
+ printf("------- %s -------\n",name);
+ print_commits(ref,repo);
+ printf("------------------\n");
+ }else
+ {
+ printf("NULL\n");
+ }
+ }
git_repository_free(repo);
git_branch_iterator_free(it);
+ git_libgit2_shutdown();
return 0;
}