VOLGIT



LOG | FILES | OVERVIEW


F diff --git a/.gitignore b/.gitignore --- a/.gitignore +++ b/.gitignore
*.o
volgit
+ .gdb_history
F diff --git a/makefile b/makefile --- a/makefile +++ b/makefile
volgit: volgit.o
- c99 volgit.o -lgit2 -o volgit
+ c99 -g volgit.o -lgit2 -o volgit
volgit.o: volgit.c
- c99 -c volgit.c -o volgit.o
+ c99 -g -c volgit.c -o volgit.o
clean:
rm -rf volgit.o volgit
F diff --git a/volgit.c b/volgit.c --- a/volgit.c +++ b/volgit.c
#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;
}