如何使用jgit遍历来自特定分支的特定提交的所有内容?
ObjectId commitId = repository.resolve(currentCommit.getCommitHash());
RevWalk revWalk = new RevWalk(repository);
RevCommit commit = revWalk.parseCommit(commitId);
RevTree tree = commit.getTree();
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create(currentPath));
if (!treeWalk.next()) {
throw new IllegalStateException(
"Did not find expected file README.md");
}
这段代码从提交中检索了一个特殊文件,但我想遍历提交的所有内容。
最佳答案
请参见this answer,其中列出了文件和文件夹。当您仅对文件路径感兴趣时,可以使用setRecursive(true)
并离开isSubtree
分支。