Создание патча для модуля Drupal

В Drupal для решения ваших задач вы подбираете contributed модули. Отлично, если модуль поддерживается автором, в нем нет багов и есть нужный вам функционал. В противном случае, вы, возможно, правите модуль и используете его для себя.

Но, наверное, было бы здорово поделиться исправлениями и с другими? Для этого не обязательно начинать новый проект, можно лишь ограничиться публикацией патча.

Создание патча для модуля Drupal по шагам.

Для создания патча обычно пользуются командой git diff. Когда у вас уже готовы изменения модуля, выполняется следующее:

  1. Скачиваем оригинальный дистрибутив модуля;
  2. Распаковываем его в отдельную папку (не важно где, например в /tmp);
  3. Инициализируем в папке с ориг. модулем git — git init
  4. Добавляем все файлы модуля в текущий  индекс — git add .
  5. Выполняем первый коммит, создавая данные с которыми будем потом сравнивать наши изменения — git commit -m «Initial commit»
  6. Теперь копируем модифицированные файлы модуля поверх оригинальных. Все готово для сравнения.
  7. Получаем сравнение в виде файла : 

После данных манипуляций вы получите file.patch, которым можно поделиться, к примеру, где то в обсуждениях модуля на drupal.org или на собственном сайте.

Как использовать/применить patch?

Нужно зайти в корень плагина (а также скопировать туда сам патч), который требуется пропатчить, и выполнить:

Мало букафф? Читайте есчо !

GIT workflow или как работать с проектом

Апрель 2, 2024 г.

Как использовать GIT, может зависеть от многих факторов, например как проходит тестирование, работает ли целая команда над проектом или один разработчик соло. Соло разработка Концепция работы с GIT в случае одного разработчика сводится обычно ...

Читать

Организуем автодеплой изменений из репозитория для проекта на Drupal

Август 23, 2018 г.

Когда над проектом работает несколько разработчиков, то возникают определенные структурные и организационные вопросы. Каждый программист обычно работает ...

Читать

Git pull с передачей логина и пароля

Декабрь 11, 2021 г.

Репозиторий почти всегда требует реквизитов доступа. И, если вы их не храните в локальной конфигурации, то скрипты, содержащие git pull, будут прерываться, запрашивая пару логин/пароль. Передать реквизиты с отдельным ключом нельзя, но можно задать ...

Читать

Перезапись ветки данными из origin

Ноябрь 8, 2018 г.

Когда что то не просто пошло не так, а зашло слишком далеко, как восстановить состояние из удаленного репозитория (origin)? Я прибегаю к этому методу, если эксперименты в очередной раз зашли в тупик, а [crayon-68c86247ab84a058749087/] требует ...

Читать
 

Комментарии к «Создание патча для модуля Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Создание патча для модуля Drupal”

  1. VasyOK:

    Спасибо. Пригодилось.

    Если так,
    git diff —no-prefix > file.patch
    то пишет:
    fatal: неоднозначный аргумент «—no-prefix»: неизвестная редакция или не путь в рабочем каталоге.
    Используйте «—» для отделения путей от редакций, вот так:
    «git […] — […]»

    git diff > file.patch — так вроде заработало.