C libgit2 - 按提交列出文件
C libgit2 - listing files by commit
我需要通过提交以编程方式列出 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 行。有什么提示吗?
基
git_tree_entrycount()
在收到 NULL 树指针时断言。您应该检查 git_repository_open()
、git_oid_fromstr()
和 git_tree_lookup()
以获得 return 结果。如果其中任何 return 不是 0,您可以使用 git_error_last()
.
检查错误消息
我需要通过提交以编程方式列出 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 行。有什么提示吗?
基
git_tree_entrycount()
在收到 NULL 树指针时断言。您应该检查 git_repository_open()
、git_oid_fromstr()
和 git_tree_lookup()
以获得 return 结果。如果其中任何 return 不是 0,您可以使用 git_error_last()
.