我有3个文件。
我想要做的是获取“f1.java”和“f1rev1.java”之间的差异并将该差异应用于“f1rev2.java”而不考虑f1.java和f1rev2.java之间的差异。
我可以使用任何工具或库来实现这一目标吗? 任何语言都没问题。
注意 - 我研究了diff3算法。在那里它将f1.java与f1rev1.java和f1.java与f1rev2.java进行比较
我不想考虑f1和f1rev2之间的差异。
答案 0 :(得分:2)
您没有指定您的平台(提示:使用适当的标签!)。
在基于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。