diff options
author | Galin Simeonov <gts@volconst.com> | 2021-09-24 21:13:13 +0300 |
---|---|---|
committer | Galin Simeonov <gts@volconst.com> | 2021-09-24 21:13:13 +0300 |
commit | 5a51dd322d438845617c2d43b6481e5c4bbe3bf8 (patch) | |
tree | b9593aee5806db7d56fa37d66e617d037de3b82f /volgit.c | |
parent | 64bf27391629388db4fcde1ae5eb8c184471874f (diff) | |
download | volgit-5a51dd322d438845617c2d43b6481e5c4bbe3bf8.tar.gz |
learned how to iterate over commits
Diffstat (limited to 'volgit.c')
-rw-r--r-- | volgit.c | 40 |
1 files changed, 39 insertions, 1 deletions
@@ -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(¤t,walker)) + { + printf("%s\n",git_oid_tostr_s(¤t)); + } + + +} 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; } |