【问题标题】:How to create a PATCH file for the binary difference output file如何为二进制差异输出文件创建 PATCH 文件
【发布时间】:2011-01-25 18:52:36
【问题描述】:

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

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

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

【问题讨论】:

标签: binary diff patch


【解决方案1】:

Diff 和 Patch 旨在处理文本文件,而不是任意二进制数据。你应该改用bsdiff 之类的东西。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        打补丁很简单'patch

        然后再编写一个程序来从二进制文件中删除换行符。就是这样……

        【讨论】:

        • 这个二进制文件安全还是可取?
        猜你喜欢
        • 2012-01-30
        • 1970-01-01
        • 2018-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多