我有3个文件。
我想要做的是获得“f1.java”和“f1rev1.java”之间的差异,并将该差异应用于“f1rev2.java”,而不考虑f1.java和f1rev2.java之间的差异。
有什么工具或图书馆,我可以用来实现这一目标? 任何语言都可以。
注 – 我研究了diff3algorithm。 在那里它将f1.rev1.java和f1.java与f1rev2.java进行比较
我不想考虑f1和f1rev2之间的差异。
你没有指定你的平台(提示:使用适当的标签!)。
在基于UNIX的平台上 ,您可以使用工具diff
和patch
来实现您想要执行的操作。
diff -u f1.java f1rev1.java > rev1.patch
创建一个补丁 patch f1rev2.java rev1.patch
将修补patch f1rev2.java rev1.patch
应用到其他源文件 正如你所看到的,它像蛋糕一样容易。 只有补丁中包含的差异将在另一个文件上播放。 请注意,这只有在补丁与其兼容时才有效。 您可以使用less
读取修补程序文件来查看要应用的更改。
在Windows系统上 ,您可以执行与此处所述相同的过程:
如何在Windows上应用diff补丁?
可悲的是,正如预期的那样,这要耗费更多的时间。 考虑使用MinGW: 使用Mingw或Cygwin 在Windows中应用补丁文件 。