Авг
28
2010

Drupal. Работа с патчами

Покажу на примере как применять и создавать патчи для drupal

Применяем patch к модулю drupal

В октябре 2009 мне было необходимо применить три патча к модулю wysiwyg для его интеграции с ckeditor’ом. Тогда мне и пришлось разобраться с работой с патчами. Вот как это делается:

wget http://ftp.drupal.org/files/projects/wysiwyg-6.x-2.0.tar.gz
tar xzf wysiwyg-6.x-2.0.tar.gz
cd wysiwyg/
wget http://drupal.org/files/issues/wysiwyg-HEAD.ckeditor_0.patch
wget http://drupal.org/files/issues/wysiwyg-HEAD.ckeditor-version.patch
wget http://drupal.org/files/issues/ckeditor.inc_fixedlists.patch

patch -p0 < wysiwyg-HEAD.ckeditor_0.patch
patch -p0 < wysiwyg-HEAD.ckeditor-version.patch
patch -d editors/ < ckeditor.inc_fixedlists.patch

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

Рекомендую просмотреть файлы патчей
Если в первом или втором случае применения патча не указать -p0, то файлы создадуться не в "editors/", а сразу в корне.
В третьем случае применения патча мы указали -d editors/ потому что в патче не указан путь к файлу относительно папки модуля. Вобщем смотри тест патча.

Создаём patch различий двух папок и применяем его

Ситуация: мы изменили какой-то модуль и хотим создать патч. Я делал это с wysiwyg.

Я создал две папки:

wysiwyg-6.x-2.0/ - оригинал
wysiwyg_patched/ - исправленный оригинал

теперь находясь на одном уровне с этими двумя папками запускаем команду:

diff -uprN wysiwyg-6.x-2.0/ wysiwyg_patched/ > ~/wysiwyg-6.x-2.0_ckeditor_support_yas_v1.patch

и в итоге мы поличи наш патч. Чтобы затем его успешно применить к нашей оригинальной версии запускаем команду:

patch -p1 < ~/wysiwyg-6.x-2.0_ckeditor_support_yas_v1.patch

tags: , ,
posted in drupal by yas375

Follow comments via the RSS Feed | Оставить комментарий | Trackback URL

Leave Your Comment