RSS
 

Работа с патчами под Виндой

По умолчанию Windows не годится для разработок она пригодна только для пользования. Конечно есть Visual Studio и прочие громоздкие инструменты, которые не очень то и нужны для решения повседневных задач веб-мастера. Но тем не менее на Винду можно поставить линуксовские утилиты. Возьмем пакет утилит UnxUtils. В состав входит улита patch-2.5 и diffutils-2.7, а это то, что нам нужно для создания patch'а и его применения.
Перед тем как применить патч

Скачав пакет UnxUtils.zip, ищем там файл patch.exe. Копируем этот файл в папку, в которую так же копируем файл патча и файл, который надо пропатчить.

Открываем файл патча (name.patch) в блокноте и смотрим куда ведут пути. Так как мы будем патчит "в папке", то нам нужно чтобы в пути были указаны только названия файлов. Итак в патче находим строчки (в начале файла)

Index: /путь/до/модуля/имя_модуля.module

и оставляем только имя файла

Index: имя_модуля.module

Дальше то же самое в строках

—- имя_модуля.module [дата и чего то там]
+++ имя_модуля.module [дата и чего то там]

ЗАМЕЧАНИЕ: файлы name.patch, как и другие патчи имеет UNIX-овый перевод каретки. Поэтому вам необходимо поменять кодировку файла на WIN. Для этого в текстовом редакторе типа Notepad++ и в меню Кодировки выберите Преобразовать в Win-формат, сохраните.

Теперь можно патчить.
Как применить patch на Windows

Чтобы упростить сею процедуру поместим все это в папку.

Пример: В корне диска С:/ создаем папку 'patchroom' и скидываем туда:

name-modified_01.patch — патч
name-original.module — то, что нужно пропатчить
patch.exe — то, чем будем патчить

Поле чего запускаем Командную строку WINDOWS. Чтобы быстро запустить CMD в WINDOWS XP, нажмите комбинацию клавиш (или Пуск > Выполнить) и напечатайте:
cmd

— эта команда откроет Командную строку WINDOWS.

В Командной строке выполните следующие команды:
для перехода в папку с нашими файлами
cd c:\patchroom

команда для пропатчивания
patch -p0 < name-modified_01.patch

Командер покажет сообщение:
patching file `name-original.module`
— значит все готово.

Но если вы увидели что-то другое, например:

File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored

или

Hunk #1 FAILED at 223.
Hunk #2 FAILED at 299.
2 out of 2 hunks FAILED

Значит файл не пропатчен, смотрите ЗАМЕЧАНИЕ выше.
Как создать патч на Windows

В том же пакете улит есть файлы diff.exe и diff3.exe. Теперь берем файлы старый.module и новый.module, и файл diff.exe. Помещаем их в одну папку и выполняем там команду:

diff -up old.mmodule new.mmodule > moipatch-01.patch

или
diff -urp original_directory new_directory > moipatch-01.patch

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

Если вышла новая версия патча, то сначала вам нужно отменить текущую версию патча, а потом применить новый патч. Чтобы полностью отменить исправление (patch), используйте команду patch с опцией -R:
patch -p0 -R < file.patch

Все приведенные команды так же можно выполнять в командной строке Total Commander.
А можно и ручками

Патчить можно и руками, если изменений не много. Просто откройте и внимательно посмотрите на строки со знаками плюс (+) и минус (-). Строки со знаками (+) надо добавить, а строки со знаками (-) убрать. Над какими строками производить изменения так же ясно из строк идущих выше и ниже сток со знаками + и -, по ним и нужно ориентироваться, но трогать их не надо. Так же по номерам строк.
Можно так же сравнить два файла в каком-нибудь текстовом редакторе с функцией сравнения. И добавить или заменить измененный или новые строки.

Взято тут: http://drupalblog.ru/create-apply-patch-on-windows-unxulits