Подтвердить что ты не робот

Как отредактировать файл diff/patch? Существуют ли какие-либо редакторы файлов патчей?

Сценарий: у меня есть файл исправления, который применительно к моим рабочим файлам, но я не хочу, чтобы все изменения были исправлены.

Обычно я делаю vim example.patch, удаляю ненужные изменения, и они применяются patch -p0 -i example.patch, но время от времени исправление не применяется чисто, и мне нужно начинать заново.

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

4b9b3361

Ответ 1

Если вы открываете файл diff в emacs и помещаете редактор в режим "diff", вы можете фактически редактировать патчи, и он будет обновлять маркеры hunk интеллектуальным способом. Работает очень хорошо для меня!

Ответ 2

Если вы ищете неинтерактивное решение, rediff из patchutils поможет.

Здесь описание man:

Вы можете использовать rediff, чтобы исправить ручной отредактированный унифицированный diff. Возьмите копию от diff, который вы хотите отредактировать, и отредактировать его, не меняя смещения или подсчеты (строки, начинающиеся с "@@" ). Затем запустите rediff, сообщив имя исходного файла diff и имя того, которое у вас есть. отредактирован, и он выведет отредактированный файл diff, но с исправленным смещения и подсчеты.

Небольшой script, editdiff, предоставляется для редактирования файла diff на месте.

Типы изменений, которые в настоящее время обрабатываются:

  • Изменение текста любой строки содержимого файла (конечно).
  • Добавление новых вводов или удаления строк.
  • Добавление, изменение или удаление строк контекста. Строки на горизонте контекста обрабатываются путем корректировки смещения и/или подсчета.
  • Добавление одного hunk (@@- prefixed section).
  • Удаление нескольких hunk (@@- префиксные разделы).

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

Ответ 3

Что SCM вы используете? если вы используете Git, вы можете:

  • Перед созданием фактического патча используйте git add -p, чтобы добавлять только части ваших изменений. Хорошей практикой является создание небольших коммитов с только связанными изменениями (однако некоторым организациям это не нравится, и они допускают только мега-фиксацию).

  • Если у вас уже есть исправление, используйте git add -p, чтобы добавить части кода, который вы хотите сохранить в своем индексе. Вы можете совершить и выбросить остальных (git co .) или занести его (git stash).

edit (на основе комментария git add -p)

  • git add -p позволяет разбить кусок на более мелкие фрагменты с помощью опции s, в случаях, когда вам нужно больше деталей, вам нужно использовать параметр e для редактирования, который приведет вас к редактору gitconfig, и он будет иметь инструкции по редактированию hunk.

Ответ 4

Не редактируйте файлы исправлений вручную. В вашем случае вы можете попробовать какой-нибудь интерактивный инструмент для применения вашего патча hunk с помощью hunk, например ipatch