Задача
Применить заплату (patch) с изменениями.
Решение
Варианты
- Применение заплаты вручную
- Использование patch
Применение заплаты вручную
Сделайте резервную копию файла, который будете изменять!
Откройте файл заплаты и в начале файла найдите 2, которые имеют примерно такой формат:
+++ sites/drupal6/sites/all/modules/filter_default/filter_default.module 2008-04-25 17:18:29.000000000 -0500
Три минуса "---" означают, что это оригинальный файл, а три плюса "+++" - это результирующий файл. Таким образом, применив заплату к оригинальному файлы ("---") мы должны получить результирующий файл ("+++").
Каждый кусочек изменений имеет формат:
for ($i = 1; $i < count($roles)+1; $i++) {
$row = array();
$row[] = $i;
- $row[] = drupal_render($form['role_'.$i]);
- $row[] = drupal_render($form['format_'.$i]);
+ $row[] = drupal_render($form['role_'. $i]);
+ $row[] = drupal_render($form['format_'. $i]);
$rows[] = $row;
}
Как читать этот код:
- @@ -59,8 +66,8 @@ function theme_filter_default_admin_defa - значит, что изменяются строки 59-66
- "-" в начале строки означает, что строка должна быть удалена
- "+" в начале строки - нужно добавить этот код
- Остальные строки - контекст изменений
Остаётся только внести изменения в нужный файл...
Использование patch
Unix и Linux
Справка по программе patch (Unix): man patch
- Cкопировать файл заплаты в то место, где он был создан (путь указан в первых двух строках файла заплатки).
- Применить команду patch
- из папки, где находится файл, который нужно изменить: patch -p0 < path/file.patch
- из корня сайта: patch < file.patch
- из папки, где находится файл, который нужно изменить:
Отмена заплаты (патча)
Если после применения заплатки появились какие-то проблемы в работе движка, то можно откатиться назад используя команду:
или
в зависимости от того, какой командой вы патчили изначально.
Но лучше и проще восстановить из резервной копии.
Windows
- Скачать программу PATCH: http://gnuwin32.sourceforge.net/packages/patch.htm
- Устанавить (запустить Setup).
- Зайти в папку установки и найти в папке bin программу patch.exe.
- Скопировать patch.exe в папку с патчем и исходными файлами.
- Запустить patch.exe - откроется терминальное окно.
- Нажать CTRL+C - выпадаете в консоль: C:\patch>
- Выполнить команду:
patch.exe --binary -p0 < SA-CORE-2009-009-6.14.patch
Вместо SA-CORE-2009-009-6.14.patch нужно указать имя файла вашего патча.
Вывод
Применение заплаты вручную - это способ, который можно применить всегда, но он самый долгий и трудоёмкий.
Использование patch - быстрый способ, но для применения в Windows требует установки доп. программ.
Использованные материалы
Как применить патч Drupal - применение патча под Windows
Полезные ссылки
- Drupal. Применение файлов patch для устранения ошибок.
- en.wikipedia.org: patch (Unix)
- drupal.org: Создание патчей (en)
- drupal.org: Применение патчей (en)












Комментарии
Предлагаю свой вариант применения патча для Drupal: http://kudryashovda.ru/content/kak-primenit-patch-drupal
Можно сюда добавить
Добавил описание для работы в винде.