Что означает эквивалентный код jgit для "git слияния-базы - ветвь-ветвь-ветвь A ветвь B"?
Я попробовал код ниже, но я не получаю правильный ответ. Я использую это для поиска происхождения ветки. foreach.branch(git merge-base -fork-point mybranch theirbranch) даст null идентификатор фиксации только для точки начала.
Итак, все, что мне нужно сделать, это выяснить, как это сделать в 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
}