LINUX.ORG.RU

Редактирование патчей

 


0

3

А как правильно редактировать патчи? Допустим, нужно убрать из патча некоторые изменения.

К примеру, есть такой diff:

 ############################################################
 # Snapshots (Traditional Periodic Webcam File Output)
@@ -309,9 +355,17 @@
 ############################################################
 
 # Locate and draw a box around the moving object.
-# Valid values: on, off and preview (default: off)
+# Valid values: on, off, preview (default: off)
 # Set to 'preview' will only draw a box in preview_shot pictures.
-locate off
+locate_motion_mode off
+
+# Set the look and style of the locate box if enabled.
+# Valid values: box, redbox, cross, redcross (default: box)
+# Set to 'box' will draw the traditional box.
+# Set to 'redbox' will draw a red box.
+# Set to 'cross' will draw a little cross to mark center.
+# Set to 'redcross' will draw a little red cross to mark center.
+locate_motion_style box
 
 # Draws the timestamp using same options as C function strftime(3)
 # Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
@@ -340,9 +394,14 @@
 text_double off

Нужно отменить часть изменений строк. Если тупо убрать эти строки из патча или просто изменить

-locate off
+locate_motion_mode off

на

 locate off

он выдаёт подобные ошибки:

patch: **** malformed patch at line 332:  # Default: %v-%Y%m%d%H%M%S-snapshot

Вроде прокатывает такой вариант:

-locate off
+locate off

но мне такой способ не очень нравится.

@@ -309,9 +355,17 @@

Надо изменять вот эти строки тоже. Числа после запятой означают количество строк в куске, до и после.

но мне такой способ не очень нравится.

Зато он самый простой.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Ясно, спасибо.

Может стоит использовать формат патчей попроще, я один фиг их сам генерирую…

Вообще мне это вот для чего. В Дебиянах при обнлении иногда пакетный менеджер ругается на изменённые конфиги. Например в новой версии Motion немного изменился синтаксис. В итоге старый конфиг не работает, а новый надо заново писать. Можно отказаться принимать новый конфиг, тогда пакетный менеджер положит новый конфиг рядом. После обновления можно посмотреть diff и внести только нужные изменения. Вот я и редактирую созданный патч на основе разницы между ними…

What_nick
() автор топика
Ответ на: комментарий от i-rinat

Интересно, в следующий раз попробую этот инструмент, спасибо.

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

Редактировать код нужно, а не диффы.

Про трехпутевое слияние - плюсую, удобно и просто.

emulek
()

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

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

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

/0

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

What_nick
() автор топика

emacs diff mode и в vim что-то подобное есть точно

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

Мда, протупил. Тогда вот описание. Править надо «hunk» целиком.
А ещё diff умеет несколько разных форматов вывода.

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