如何使用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分支。

09-04 03:53