"git binary diffs are not supported" 使用 yocto 时出错

"git binary diffs are not supported" error using yocto

我有一个 git 存储库,我在其中维护一些二进制文件。现在我想创建最后几次提交的补丁并将它们集成到 Yocto 构建中。

我创建了像

这样的补丁
git format-patch -3 --binary

现在我已经将这些补丁集成到 Yocto 配方文件中。 Yocto 在 do_patch()

git apply 时给出以下错误
git binary diffs are not supported.
Patch xyz.patch does not apply (enforce with -f)

我在这里创建二进制补丁时是否遗漏了什么?

我可以在我的配方文件中使用任何 Yocto Hacks 来处理二进制补丁吗?

也许您需要使用带有附加标志的命令 --full-index

git format-patch -3 --full-index --binary

https://git-scm.com/docs/git-format-patch --二进制 除了 --full-index 之外,输出一个二进制差异,可以用 git-apply.

应用

Is there any Yocto Hacks which i can do in my recipe file to handle with binary patches?

当我处理二进制源代码时,我将二进制部分放在 .tar.gz 中,将其添加到 SRC_URI 然后 cp 我需要的位到我需要的地方一个do_install_append

我还 运行 使用使用 yocto 工具(devtool update-recipe)创建的补丁,我不想改变我创建补丁的方式。

默认情况下,yocto 使用 quilt 来应用补丁,我使用 git 解决了这个问题。

这可以通过在配方中设置 PATCHTOOL 变量来配置:

PATCHTOOL = "git"