Работа с патчами для 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". Только вот как сделать реверт патча я пока не нашел. Найдете - поделитесь!

Применение патчей в PhpStorm

Вот такая небольшая шпаргалка на случай, когда придется столкнуться с патчами для Drupal проектов.

Добавить комментарий

                888                d8888  
888 d8P888
888 d8P 888
88888b. .d88888 8888b. d8P 888
888 "88b d88" 888 "88b d88 888
888 888 888 888 .d888888 8888888888
888 d88P Y88b 888 888 888 888
88888P" "Y88888 "Y888888 888
888
888
888
Зарегистрируйтесь для добавления материалов без проверки.