Утилита графического патча - PullRequest
7 голосов
/ 18 июня 2010

У меня есть исправление ядра для немного другой версии ядра, чем та, которую я пытаюсь исправить. Излишне говорить, что патч частично дает сбой. Конечно, я могу исправить это вручную, но мне было интересно, может быть, есть графическая утилита исправлений, которая может использоваться для разрешения конфликтов.

Ответы [ 3 ]

8 голосов
/ 08 сентября 2010

Существует много графических утилит исправлений, попробуйте meld, diffuse, kdiff3 или dirdiff, они должны быть упакованы для вашего дистрибутива.

Другой полезный инструмент - wiggle, который«старается» разрешить конфликты и превратит файл rej из патча во встроенный конфликт в стиле CVS с маркерами >>>.

Я склонен использовать его с базовой системой ревизий, поэтому яЯ рад вернуть свои изменения, если они неправильные, поэтому я использую:

wiggle -v --replace <file> <file.rej>

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

1 голос
/ 18 июня 2010

Я не знаю насчет графической утилиты исправлений, но я, вероятно, хотел бы получить файлы в старой версии ядра, применить исправление для получения исправленных старых файлов (сохраняя старый файл ( s)), получите файл (ы) в новой версии ядра, а затем используйте инструмент 3-way merge, такой как GNU Meld .

Эта процедура занимает немного времени, но я считаю ее чрезвычайно полезной при разрешении конфликтов Subversion (очень похоже на то, что вы пытаетесь выполнить). И это позволяет вам быстро выяснить , насколько отличается файл (ы) в двух версиях ядра, что изменилось, и различные изменения, которые вам, вероятно, потребуется внести в строки исправления, чтобы сделать они совместимы с новыми файлами.

0 голосов
/ 23 февраля 2014

Да, я столкнулся с подобной ситуацией, пытаясь применить исправления Firefox Light v27 к Firefox v28 beta 4. Команда Mozilla переименовала некоторые вещи, так что это не прямое падение. Я надеялся сделать это, чтобы я мог скомпилировать это для Linux. В итоге я открыл патч в одном текстовом редакторе, а код - в другом.

Это был Mousepad, но это мог быть любой простой текстовый редактор, gEdit, Leafpad, Geany ... Затем все моды были сделаны вручную, рядом, из одного окна в другое, но это так медленно «Найти» было полезно при переходе на правильные места редактирования.

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

...