2
什么是“git merge-base -fork-point branchA branchB”的jgit等效codeo?什么是“git merge-base -fork-point branchA branchB”的jgit等效物
我试了下面的代码,但我没有得到正确的答案。我正在使用它来寻找分支原点。 foreach.branch(git merge-base -fork-point mybranch theirbranch)将仅为原点生成一个提交ID。
所以,我需要做的就是弄清楚如何在jgit中做到这一点,我有一个计算分支原点的方法,当我不知道它的时候。
private String getMergeBase(Repository repository, ObjectId commitIdA, ObjectId commitIdB) {
RevWalk walk = new RevWalk(repository)
try {
RevCommit revA = walk.lookupCommit(commitIdA)
RevCommit revB = walk.lookupCommit(commitIdB)
walk.setRevFilter(RevFilter.MERGE_BASE)
walk.markStart([revA,revB])
RevCommit mergeBase = walk.next()
if (! mergeBase) { return null }
return mergeBase.name
} catch(Exception e) {
project.logger.error("GetMergeBase Failed: ${commitIdA}, ${commitIdB} because ${e.message}")
}
return null
}
实际上,这并不适用于所有情况。我决定放弃并使用标签。我只需要这个补丁分支。所有补丁分支都具有与特定发布标签相似的名称。我将修补程序分支名称粘贴到标记名称中,然后使用log tag..HEAD查找所需的更改 –