如何为二进制差异输出文件创建PATCH文件

时间:2010-03-10 07:14:30

标签: binary diff patch

我想知道如何通过比较两个二进制文件为我得到的差异文件创建PATCH。 $ cmp -l>输出文件名

我检查了文本文件'diff'可用于比较和生成PATCH文件 $ diff -u oldFile newFile> mods.diff#-u告诉diff输出统一的diff格式

我想在旧的二进制图像文件上应用PATCH来获取我的新二进制图像文件。

4 个答案:

答案 0 :(得分:6)

Diff和Patch旨在处理文本文件,而不是任意二进制数据。您应该使用类似bsdiff的内容。

答案 1 :(得分:2)

JDIFF是一个输出两个(二进制)文件之间差异的程序 您也可以使用rdiff命令。

答案 2 :(得分:0)

如果您的存储库,或包正在使用git ,您可以使用 git diff --patch --binary old_dir patched_dir 当然你也可以在提交中使用它 git diff --patch --binary commit1 commit2

答案 3 :(得分:-2)

如果您仍想使用差异和放大器补丁。这是一种方式...... 自己编写一个c程序,在每个512/1024 / your_choice字节的末尾插入一个换行符(这只是为了欺骗差异,因为它逐行比较文件)。在两个输入文件上运行此脚本。

然后运行'diff -au file1 file2> mod.diff(你会在这里得到补丁)'

修补很简单'补丁< mod.diff'

再次编写程序以从二进制文件中删除换行符。这就是......