我想用JGit获取特定分支的所有提交。
我们以test-kitchen为例。它有5个分支:
我如何仅通过spec-coverage
进行迭代?
在这个例子中,我将获得所有可用的分支和提交。但我需要选择我想要提交的分支。
摘录:
// branch
for (Ref branch : git.branchList().setListMode(ListMode.REMOTE).call()){
git.checkout().setName(branch.getName()).call();
System.out.println("Branch: " + branch.getName());
// commits
Iterable<RevCommit> commits = git.log().all().call();
for (RevCommit commit : commits) {
System.out.println(commit);
// doing something with the commits...
}
}
答案 0 :(得分:0)
根据您的描述,您尝试执行相当于“git log”的操作,jgit-cookbook有一个片段,显示如何迭代所有提交,但在这种情况下,您可以选择列出通过使用add()而不是all()只对分支上的提交进行迭代的所有提交:
Iterable<RevCommit> logs = new Git(repository).log()
.add(repository.resolve("remotes/origin/checkoutbranch"))
.call();
for (RevCommit rev : logs) {
...
}
我现在还更新了jgit-cookbook片段,以显示在log()上使用all()的区别。