我正在构建一个解决方案来更新Java中某个软件的文件。我想创建类似于diff / patch Unix功能的东西,但是使用Java来创建直接在FS中的文件,即在存储库之外。
目前,我可以使用以下代码轻松获得与JGit的差异:
public static EditList computeDifferencesGit(final File p_fileOld,
final File p_fileNew) throws IOException
{
RawText l_contentFileOld = new RawText(p_fileOld);
RawText l_contentFileNew = new RawText(p_fileNew);
EditList l_listDiffs = new EditList();
l_listDiffs.addAll(new HistogramDiff().diff(RawTextComparator.DEFAULT, l_contentFileOld, l_contentFileNew));
String l_strUnidiff = _getUnidiff(l_contentFileOld, l_contentFileNew, l_listDiffs);
System.out.println("UNIDIFF:\n" + l_strUnidiff);
return l_listDiffs;
}
但是,我想将diff的结果作为补丁应用于第三个文件。
我调查过,发现JGit包中有一个ApplyCommand
类。但是,要实例化它,我想我需要一个我没有的存储库。
关于如何将补丁应用于文件的任何想法?