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

Alc*_*tos 6 git conflict simulate jgit

我正在尝试使用 JGit 执行有冲突的项目中的所有合并场景。

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

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

Rüd*_*ann 5

您可以使用ThreeWayMergers 之一来确定是否可以合并两个提交。

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

确保创建一个in core合并(将第二个参数设置newMergertrue)。在此模式下,合并不会触及工作目录。

ThreeWayMerger merger = MergeStrategy.RECURSIVE.newMerger(repository, true);
boolean canMerge = merger.merge(headCommit, commitToMerge);
Run Code Online (Sandbox Code Playgroud)

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

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

ResolveMergerRecursiveMerger也提供方法来查询该文件(S)不能合并。