Работа с патчами для Drupal проектов через Git
Для работы с патчами нам потребуется Git и консольное окно Git Bash. Проблема у меня возникла, когда я попытался применить патч, который был создан в репозитории, состоящем из файлов модуля, на полный проект из файлов Drupal. Сейчас объясню разницу на пальцах.
Для начала рекомендую ознакомится с информацией, по созданию патчей на Drupal.org. Если коротко и по-русски: клонируем репозиторий какого-либо модуля, переключаемся в другую ветку, вносим изменения и создаем патч на основе различий между ветками. Все, теперь казалось бы все работает и можно играться с патчем:
- применить патч;git apply --index path/file.patch
- откатить патч;git apply -R path/file.patch
Применение патча для полного проекта
Да, в вышеописанном ничего сложного и нового нет. С небольшими проблемами я столкнулся, когда потребовалось применить патч на полный проект, репозиторий которого состоит из ядра Drupal и нескольких модулей. Допустим, что наш вышеописанный патч был создан для модуля Webform. Чтобы его применить:
- закидываем патч (webform-patch-name.patch) в папку с модулем;
- переходим через консольное окно в папку с модулем;cd /sites/all/modules/contrib/webform
- накатить патч;git apply --directory=sites/all/modules/contrib/webform webform-patch-name.patch
- откатить патч.git apply -R --directory=sites/all/modules/contrib/webform webform-patch-name.patch
Для любителей все делать через PhpStorm: левый клик предоставляет опцию меню "Apply patch". Только вот как сделать реверт патча я пока не нашел. Найдете - поделитесь!
Вот такая небольшая шпаргалка на случай, когда придется столкнуться с патчами для Drupal проектов.
Добавить комментарий