LINUX.ORG.RU

Ошибка при применение patch. Можно ли смержить изменения?


0

2

Есть patch к определенной софтине (исходники). Но его надо применить к другой версии данной софтины. Применение patch выдает ошибку.

Hunk #1 FAILED at 70.
Hunk #2 FAILED at 93.
Hunk #3 succeeded at 314 (offset 202 lines).
Hunk #4 FAILED at 210.
...
44 out of 47 hunks FAILED -- saving rejects to file ...

После чего на фс появляется три файла. cpp, cpp.rej, cpp.orig

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

Не хочется ползать по patch файлу и вручную подставлять изменения в конечный файл. Спасибо.

★★★★★

например, man git-merge-file

JackYF ★★★★
()

В результате ты тупо перепутаешь что к чему :-) Возьми просто сделай ручками по patch файлу

Serg5Markov
()

Можно — настраивай ИИ (он же у тебя есть, да?).

anonymous
()

44 out of 47 hunks FAILED

Дай угадаю, ты еще и кресты не знаешь? Тогда у меня для тебя плохие новости.

anonymous
()
Ответ на: комментарий от anonymous

Дай угадаю, ты еще и кресты не знаешь? Тогда у меня для тебя плохие новости.

Кресты я знаю, собственно и работаю с ними. Но при чем тут знания плюсов? Поделись информацией.

Dudraug ★★★★★
() автор топика
Ответ на: комментарий от Dudraug

Такое количество режектов свидетельствует о значительном изменении кода, то есть, тебе, по-факту, надо спортировать изменения в патче на новый код. Так просто он не ляжет.

anonymous
()

При помощи этих - вряд ли, но можно попробовать обычный 3-way merge (если у тебя есть версия файла, для которого изначально сделан патч).

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от anonymous

Да я уже понял. Спортировал, но судя по коду изменения не очень то и заметны. Код практически идентичен (меется ввиду не построково, а по содержанию. Возможно где-то вначале добавили пару строк кода и получилось то что получилось), это я уже говорю после того как ручками смержил патч.

Интересно просто на будущее, что обычно делают люди когда имеют патч на более старые сорцы. Неужели вручную (глазами) парсят diff файл?

Dudraug ★★★★★
() автор топика
Ответ на: комментарий от Dudraug

что обычно делают люди когда имеют патч на более старые сорцы

Обычно есть VCS. Которая может сделать merge на основе версии для которой был сделан патч.

anonymous
()
Ответ на: комментарий от Dudraug

А собственно для чего эти три файла тогда создаются?

Иногда нет другого выхода, кроме как править патч вручную.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.