C libgit2-通过提交列出文件

问题描述 投票:0回答:1

我需要通过编程方式从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

c git libgit2
1个回答
0
投票

git_tree_entrycount()在收到NULL树指针时断言。您应检查git_repository_open()git_oid_fromstr()git_tree_lookup()的返回结果。如果它们中的任何一个返回不为0,则可以使用git_error_last()检查错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.