如何使用JGit获取标签之间的提交列表?
How to obtain commit list between tags with JGit?
假设给定两个标签作为输入,例如 "v5.8.0.202005061305-m2" 和 "v5.7.0.202003090808-r"。
有没有办法用JGit获取两个标签之间的提交列表?
我知道 GitHub 具有该功能,因为您可以比较两个标签并查看其间的所有提交,但我们可以用 JGit 做同样的事情吗?
LogCommand
有一个 addRange
方法来指定您感兴趣的提交。
这是一个将标签名称解析为提交 ID,然后使用 LogCommand
列出该范围内所有提交的示例。
Git git = ...
Ref tag1 = git.getRepository().exactRef("refs/tags/tag1");
Ref tag2 = git.getRepository().exactRef("refs/tags/tag2");
Iterable<RevCommit> commits = git.log().addRange(tag1.getPeeledObjectId(), tag2.getPeeledObjectId());
for(RevCommit : commits ) {
...
}
假设给定两个标签作为输入,例如 "v5.8.0.202005061305-m2" 和 "v5.7.0.202003090808-r"。
有没有办法用JGit获取两个标签之间的提交列表?
我知道 GitHub 具有该功能,因为您可以比较两个标签并查看其间的所有提交,但我们可以用 JGit 做同样的事情吗?
LogCommand
有一个 addRange
方法来指定您感兴趣的提交。
这是一个将标签名称解析为提交 ID,然后使用 LogCommand
列出该范围内所有提交的示例。
Git git = ...
Ref tag1 = git.getRepository().exactRef("refs/tags/tag1");
Ref tag2 = git.getRepository().exactRef("refs/tags/tag2");
Iterable<RevCommit> commits = git.log().addRange(tag1.getPeeledObjectId(), tag2.getPeeledObjectId());
for(RevCommit : commits ) {
...
}