3

我有 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 之间的差异。

4

1 回答 1

2

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

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

  1. 用于diff -u f1.java f1rev1.java > rev1.patch创建补丁
  2. 将补丁通过应用patch f1rev2.java rev1.patch到其他源文件

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

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

如何在 Windows 上应用差异补丁?

可悲的是,但正如预期的那样,它更耗时。考虑使用 MinGW:使用 Mingw或 Cygwin 在 Windows 中应用补丁文件。

于 2013-11-12T06:11:10.597 回答