Java 使用JGit从合并场景中获取冲突行的最佳方法是什么?

Java 使用JGit从合并场景中获取冲突行的最佳方法是什么?,java,git-merge,jgit,merge-conflict-resolution,Java,Git Merge,Jgit,Merge Conflict Resolution,我正在使用JGit执行项目的所有合并场景(如下代码段所示),但它们只在第一次执行。在第二次执行中,getMergeScenarios()返回一个空列表 List<RevCommit> list = getMergeCommits(); for (RevCommit mergeCommit : list) { RevCommit leftParent = mergeCommit.getParent(0); RevCommit rightParent = merg

我正在使用
JGit
执行项目的所有合并场景(如下代码段所示),但它们只在第一次执行。在第二次执行中,
getMergeScenarios()
返回一个空列表

List<RevCommit> list = getMergeCommits();   

for (RevCommit mergeCommit : list) {
    RevCommit leftParent = mergeCommit.getParent(0);
    RevCommit rightParent = mergeCommit.getParent(1);

    CheckoutCommand ckoutCmd = git.checkout();
    ckoutCmd.setName(leftParent.getName());
    ckoutCmd.setStartPoint(leftParent);
    ckoutCmd.call();

    MergeCommand mergeCmd = git.merge();
    mergeCmd.setCommit(false);
    mergeCmd.include(rightParent);
    MergeResult mResult = mergeCmd.call();

    if(mResult.getMergeStatus()==MergeStatus.CONFLICTING){
        // do whatever I want
    }

    // reset the index and work directory to HEAD
    Git.wrap( repository ).reset().setMode( ResetType.HARD ).call();
} 
List List=getMergeCommits();
for(RevCommit合并提交:列表){
RevCommit leftParent=mergeCommit.getParent(0);
RevCommit rightParent=mergeCommit.getParent(1);
checkout命令ckoutCmd=git.checkout();
ckoutCmd.setName(leftParent.getName());
ckoutCmd.setStartPoint(leftParent);
ckoutCmd.call();
MergeCommand mergeCmd=git.merge();
mergeCmd.setCommit(false);
mergeCmd.include(右父级);
mergesult mResult=mergeCmd.call();
if(mResult.getMergeStatus()==MergeStatus.confirating){
//我想做什么就做什么
}
//将索引和工作目录重置为HEAD
Git.wrap(repository.reset().setMode(ResetType.HARD).call();
} 
我还尝试使用
repository.writeMergeCommitMsg(null)
存储库.writeMergeHeads(空)
删除冲突合并的结果,以便执行新合并。但是,我得到了相同的结果:在下面执行
getmergecommissions()
的过程中,出现了一个空列表。似乎有关合并存在的信息已被删除

我该怎么做才能跑多少次?在寻找答案时,我觉得我应该做一些类似于git合并的事情——中止。这在
JGit
中可用吗?我在上面的代码片段中遗漏了什么,或者用JGit从合并场景中获取冲突行的最佳方法是什么?

MergeResult\getConflicts()
应该可以做到这一点,但我在
MergeResult\getConflicts()
中发现了一个bug。JGit Gerrit中有一个等待审查的问题。
MergeResult#getConflicts()
应该可以解决,但我在
MergeResult#getConflicts()
中发现了一个bug。JGit Gerrit中有一个等待审查的问题。