【问题标题】:Tools or libraries to apply diff between 2 files to a another file?将两个文件之间的差异应用于另一个文件的工具或库?
【发布时间】:2013-11-24 02:41:41
【问题描述】:

我有 3 个文件。

  1. f1.java
  2. f1rev1.java
  3. f1rev2.java

我想要做的是获取“f1.java”和“f1rev1.java”之间的差异并将该差异应用于“f1rev2.java”而不考虑f1.java和f1rev2.java之间的差异。

我可以使用任何工具或库来实现此目的吗? 任何语言都可以。

注意 - 我研究的是 diff3 算法。在那里它将 f1.java 与 f1rev1.java 和 f1.java 与 f1rev2.java 进行比较

我不想考虑 f1 和 f1rev2 之间的差异。

【问题讨论】:

    标签: windows merge diff


    【解决方案1】:

    您没有指定您的平台(提示:使用适当的标签!)。

    在基于 UNIX 的平台上,您可以使用工具 diffpatch 来实现您想做的事情。

    1. 使用diff -u f1.java f1rev1.java > rev1.patch 创建补丁
    2. 通过patch f1rev2.java rev1.patch 将补丁应用到另一个源文件

    如您所见,它就像蛋糕一样简单。只有补丁中包含的差异才会在其他文件上播放。请注意,这只适用于补丁与其兼容的情况。您可以使用less 阅读补丁文件以查看要应用的更改。

    在 Windows 系统上,您可以执行此处概述的相同步骤:

    How do I apply a diff patch on Windows?

    很遗憾,但正如预期的那样,它更耗时。考虑使用 MinGW:Apply a patch file in Windows using Mingw 或 Cygwin。

    【讨论】:

    • 我正在尝试构建一个工具。我想为用户提供便利,让他们可以选择用户想要从补丁(f1 和 f1rev1 之间的差异)合并到 f1rev2 的东西
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 2014-02-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 2021-01-01
    相关资源
    最近更新 更多