0

我试图在这里应用补丁,我将它保存为 xLoader.patch

http://gitorious.org/x-load-omap3/mainline/commit/ee120c894c3377054bda149748eb0621f2f843c8?format=patch

它修改了多个文件并且不会从基本目录顺利完成,我正在使用下面的命令并收到一堆关于帅哥失败的错误,我该如何正确地做到这一点?有没有办法将文件分解成独立处理每个文件的段?

补丁 -p1 --dry-run -i xLoader.patch

错误:

x-loader$ patch -p1 --dry-run -i xLoader-512_patch.txt
patching file board/omap3beagle/omap3beagle.c
Hunk #1 succeeded at 310 (offset 45 lines).
Hunk #2 FAILED at 305.
1 out of 2 hunks FAILED -- saving rejects to file board/omap3beagle/omap3beagle.c.rej
patching file drivers/k9f1g08r0a.c
Hunk #1 succeeded at 221 (offset 67 lines).
Hunk #2 FAILED at 185.
1 out of 2 hunks FAILED -- saving rejects to file drivers/k9f1g08r0a.c.rej
patching file include/asm/arch-omap3/mem.h
Hunk #2 FAILED at 72.
Hunk #3 succeeded at 305 (offset 52 lines).
Hunk #4 succeeded at 364 (offset 52 lines).
1 out of 4 hunks FAILED -- saving rejects to file include/asm/arch-omap3/mem.h.rej
4

2 回答 2

3

如果这就是您所需要的,那么是的,可以将它分成一个段,用于它修补的每个文件。---只需在/+++标题行上拆分它。这些片段中的每一个都可以作为一个独立的补丁文件很好地工作。

于 2012-12-23T03:30:37.217 回答
1

如果您正在使用 git 并应用到 git 工作目录,则可以使用 git-apply 而不是 patch。

听起来你的补丁只是没有干净地应用。没有真正需要一次仅将其应用于一个文件,它将应用于干净地应用到的文件,并为失败的文件保存拒绝。

如果您愿意,您可以将其拆分为多个部分,每个单独的文件都以带有“diff”命令的行开头。

如果您使用的是 GNU 补丁,则有一个“-U”选项可以将拒绝文件保存在统一差异而不是普通差异中。如果您习惯于阅读统一差异,那么在手动应用被拒绝的大块时,这将使您的生活变得更加轻松。

另一种选择是创建不同的 git 分支,一个是干净地应用补丁的分支,另一个是你所做的任何更改,使其不能干净地应用。然后将分支与应用到您自己的补丁上的补丁合并。这可能会给你内联 diff3 样式合并冲突而不是 .rej 文件。

于 2012-12-23T03:38:52.260 回答