“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
}