如何在JGit中将修补程序应用于存储库外的文件

时间:2014-04-08 08:32:00

标签: java git diff patch jgit

我正在构建一个解决方案来更新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类。但是,要实例化它,我想我需要一个我没有的存储库。

关于如何将补丁应用于文件的任何想法?

0 个答案:

没有答案