Применение патча, который изменяет несколько файлов

Я пытаюсь применить патч здесь, я сохраняю его как xLoader.patch

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

Он изменяет более одного файла и просто не будет плавно переходить из базового каталога, я использую приведенную ниже команду и получаю кучу ошибок об ошибках, как я могу это правильно сделать? Есть ли способ разбить файл на сегменты, которые обрабатывают каждый файл независимо?

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

0

Решение

Если это все, что вам нужно, то да, есть возможность разбить его на сегмент для каждого файла, который он исправляет. Просто разделите его на ---/+++ строки заголовка. Каждый из этих сегментов прекрасно работает как отдельный файл патча.

3

Другие решения

Если вы используете git и обращаетесь к рабочему каталогу git, вы можете использовать git-apply вместо patch.

Похоже, ваш патч просто не применяется. Нет реальной необходимости применять его только к одному файлу за раз, он будет применяться к файлам, к которым он применяется, и сохранять отклонения для файлов, которые потерпели неудачу.

Вы можете разбить его на части, если хотите, каждый отдельный файл начинается со строки с командой diff.

Если вы используете патч GNU, есть опция «-U», которая позволяет сохранить отклоненные файлы в унифицированном diff вместо обычного diff. Если вы привыкли читать унифицированные различия, это значительно облегчит вашу жизнь, когда придет время вручную применять отклоненные фрагменты.

Другим вариантом является создание различных веток git, к которым патч применяется аккуратно, а с другими изменениями, которые делают его неприменимым. Затем объедините ветку с патчем, примененным к вашему собственному патчу. Это, вероятно, даст вам конфликты слияния в стиле diff3 вместо файлов .rej.

1

По вопросам рекламы [email protected]