如何在与JGit合并之前发生冲突?

时间:2016-04-02 10:48:31

标签: git conflict jgit simulate

我正在尝试使用来自发生冲突的项目的项目中的所有合并方案执行JGit。

是否有可能在实际合并之前获得冲突?换句话说,是否可以模拟与JGit的合并?

我的目标是访问项目所有合并方案的每个文件的冲突行。

1 个答案:

答案 0 :(得分:2)

您可以使用其中一个ThreeWayMerger来确定是否可以合并两个提交。

默认情况下,JGit MergeCommand使用递归合并策略。因此,您可能希望使用此合并。

确保在核心合并中创建(将newMerger的第二个参数设置为true)。在此模式下,合并不会触及工作目录。

ThreeWayMerger merger = MergeStrategy.RECURSIVE.newMerger( repository, true );
boolean canMerge = merger.merge( headCommit, commitToMerge );

如果给定的提交可以合并,则merge方法返回true,否则返回false

可以使用setBase显式设置基本提交,也可以使用共同的祖先。

ResolveMergerRecursiveMerger还提供了查询哪些文件无法合并的方法。