我有 3 个文件。
- f1.java
- f1rev1.java
- f1rev2.java
我想做的是获取“f1.java”和“f1rev1.java”之间的差异并将该差异应用到“f1rev2.java”而不考虑f1.java 和f1rev2.java 之间的差异。
是否有任何工具或库可用于实现此目的? 任何语言都可以。
注意 - 我研究了 diff3 算法。在那里它比较了 f1.java 和 f1rev1.java 以及 f1.java 和 f1rev2.java
我不想考虑 f1 和 f1rev2 之间的差异。
最佳答案
您没有指定您的平台(提示:使用适当的标签!)。
在基于 UNIX 的平台上,您可以使用工具 diff
和 patch
来实现您想要做的事情。
- 使用
diff -u f1.java f1rev1.java > rev1.patch
创建补丁 - 通过
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。
关于windows - 将两个文件之间的差异应用到另一个文件的工具或库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920881/