如何在与 JGit 合并之前发生冲突?
How to get conflicts before merge with JGit?
我正在尝试使用 JGit 执行一个有冲突的项目的所有合并方案。
是否可以在实际合并之前获取冲突?换句话说,是否可以用 JGit 模拟合并?
我的目标 是为项目的所有合并方案访问每个文件的冲突行。
您可以使用 ThreeWayMerger
之一来确定是否可以合并两个提交。
默认情况下,JGit 的MergeCommand
使用递归 合并策略。因此,您可能希望使用此合并。
确保创建一个in core合并(将newMerger
的第二个参数设置为true
)。在此模式下,合并不会触及工作目录。
ThreeWayMerger merger = MergeStrategy.RECURSIVE.newMerger(repository, true);
boolean canMerge = merger.merge(headCommit, commitToMerge);
合并方法 returns true
如果可以合并给定的提交,否则 false
。
基本提交可以使用 setBase
显式设置或使用共同祖先。
ResolveMerger
和RecursiveMerger
也提供查询哪些文件不能合并的方法。
我正在尝试使用 JGit 执行一个有冲突的项目的所有合并方案。
是否可以在实际合并之前获取冲突?换句话说,是否可以用 JGit 模拟合并?
我的目标 是为项目的所有合并方案访问每个文件的冲突行。
您可以使用 ThreeWayMerger
之一来确定是否可以合并两个提交。
默认情况下,JGit 的MergeCommand
使用递归 合并策略。因此,您可能希望使用此合并。
确保创建一个in core合并(将newMerger
的第二个参数设置为true
)。在此模式下,合并不会触及工作目录。
ThreeWayMerger merger = MergeStrategy.RECURSIVE.newMerger(repository, true);
boolean canMerge = merger.merge(headCommit, commitToMerge);
合并方法 returns true
如果可以合并给定的提交,否则 false
。
基本提交可以使用 setBase
显式设置或使用共同祖先。
ResolveMerger
和RecursiveMerger
也提供查询哪些文件不能合并的方法。