Как патчить на винде?

Учитывая (исходный) файл патча, каков самый простой способ применить этот патч к исходным файлам под Windows?

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

21.08.2008 10:58:40
4 ОТВЕТА
РЕШЕНИЕ

Патч для Windows - это то, что вы ищете.

6
21.08.2008 11:01:49
Обратите внимание, что этот патч плохо работает с UAC в Vista. Вместо этого попробуйте Git-for-windows patch.exe, который поставляется с манифестом, решающим проблему.
Macke 8.03.2009 21:37:26
@ Мака права! Смотрите мой ответ для практических рекомендаций с GIT!
Nicolas Thery 11.07.2015 14:39:01

WinMerge потрясающий.

http://winmerge.org/

-2
21.08.2008 11:01:55
Winmerge хорош в создании патчей, но не в их применении. ОП спросил о том, как его применить. Было бы невероятно новой функцией, если бы WinMerge мог применить патч и затем показать сделанные изменения.
Warren P 28.10.2011 20:05:51
Найденные в справке WinMerge исправления не могут быть применены с помощью WinMerge. Однако вы можете применять исправления с помощью инструмента исправлений из проекта GnuWin32, поскольку WinMerge создает файлы исправлений, совместимые с GNU / diffutils. Также см. Предыдущий вопрос.
Nicolas Thery 7.11.2011 19:41:36
Я искал это. Спасибо. Я занялся поиском "как сделать патчи", эта страница поднялась вверх, так что ...
the kamilz 26.12.2019 08:19:14

Благодаря Маке, хорошим способом применения файла исправления в ОС Windows является использование Git. Как я понял, Git - это решение для контроля версий, подобное SVN.

Вот инструкция по применению патча:

  • Прежде всего, загрузите последнюю версию Windows Git Edition здесь: GIT
  • С помощью команды cmd измените каталог на файл исправления и файлы для исправления
  • Теперь вы можете использовать следующую командную строку:
git apply --ignore-space-change --ignore-whitespace --whitespace=nowarn file.patch

Просто не так ли?

Спасибо Маке

18
8.11.2011 19:30:37

Не то чтобы начиная с Git 2.3.3 (март 2015 г.), вы можете git apply --unsafe-pathsиспользовать git apply вне git-репо.

Смотрите коммит 5244a31 от Junio ​​C Hamano ( gitster)

« git apply» не очень внимательно относился к чтению, удалению, обновлению и созданию путей вне рабочего дерева (в --index/ --cached) или в текущем каталоге (при использовании в качестве замены для патча GNU).

Документация теперь включает в себя:

--unsafe-paths:

По умолчанию патч, который влияет за пределами рабочей области (либо рабочее дерево, контролируемое Git, либо текущий рабочий каталог, когда « git apply» используется в качестве замены патча GNU), отклоняется как ошибка (или вред).

Когда git applyиспользуется как «лучший патч GNU», пользователь может пропустить --unsafe-pathsопцию, чтобы отменить эту проверку безопасности.
Этот параметр не имеет никакого эффекта , когда --indexили --cachedв использовании.

Так что, если у вас установлен git , он git applyможет помочь даже вне любого git-репо.

5
14.03.2015 15:12:14