Как объединить все патчи в один?

Всем привет!

Есть, к примеру, продукт и его исходники ( к примеру, samba ).
Так же есть стопиццот патчей.

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

Я точно знаю, что можно сложить все необходимые патчи в один с учётом всех изменений и получить на выходе один кумулятивный патч.
Но что-то ни вспомнить, ни нагуглить не получается.

Вот вроде как использовал когда-то patchutils (interdiff и иже с ним), но что-то не получается сейчас.

Кто подскажет правильный путь решения вопроса?
  • Вопрос задан
  • 659 просмотров
Решения вопроса 2
@ashumkin
системный разработчик
если эти патчи применялись один за другим, то и накатывать их надо так же (спасибо, кэп) )))
если же каждый их эти стопицот патчей делались на "ванильные" исходники - то вряд ли получится слить из "просто так"
однако, я бы попробовал такой вариант:
засунул бы каждый патч в свою ветку git (samba же там уже живёт?), и слил все ветки вместе - на выходе должно получиться искомое, если обойдётся без конфликтов ))
Git более умно применяет патчи, он не ориентируется на НОМЕРА строк, как это делает patch, он ориентируется на КОНТЕКСТ патча (все эти строчки ДО и ПОСЛЕ изменений; из-за этого, кстати, у меня один раз была бага при слиянии )) )
Ответ написан
Frankenstine
@Frankenstine
Сисадмин
Я думаю единственный путь - взять начальный исходник, навесить на него все патчи, и сделать дифф к начальному исходнику, что и будет искомым кумулятивным патчем.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DoggerBloger
@DoggerBloger
я начинающий программист python
насколько я знаю никак
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы