我需要通过编程方式从Git列出提交文件。这是我的代码:
git_libgit2_init();
const char * REPO_PATH = "C:/Users/ki/test_repo";
git_repository * repo;
git_repository_open(&repo, REPO_PATH);
git_oid oid;
git_oid_fromstr(&oid, "08061b05");
git_tree *tree;
git_tree_lookup(&tree, repo, &oid);
size_t cnt = git_tree_entrycount(tree);
printf("tree entries: %d\n", (int) cnt);
...
git_tree_free(tree);
git_repository_free(repo);
git_libgit2_shutdown();
return 0;
问题是,库引发断言错误,tree.c第339行。有任何提示吗?
KI
git_tree_entrycount()
在收到NULL树指针时断言。您应检查git_repository_open()
,git_oid_fromstr()
和git_tree_lookup()
的返回结果。如果它们中的任何一个返回不为0,则可以使用git_error_last()
检查错误消息。