TL, DR;
Я ищу команду git, сценарий bash или метод (сценарий) npm, чтобы взять все файлы .patch
в папке и запустить
git apply --ignore-whitespace patches/{filename}
Что я пробовал до сих пор:
git am --ignore-whitespace patches/*.patch
Контекст (для чего я буду его использовать)
В настоящее времяработая над большим проектом, используя множество библиотек.Мы используем webpack, фронтенд - Angular.js, бэкэнд на Yii2.Поскольку разработчики используют как Linux, так и Windows, проект скомпилирован в образе докера.
До сих пор, когда нам нужно было внести изменения в библиотеку, мы разветвляли ее и указывали вилку в package.json
:
"package-name":"git+https://github.com/{git-user}/{package-name}"
и ... это работает.
Недавно я узнал о возможно лучшем способе применения патчей к модулям, который составляет patch-package
.Короче говоря, он избегает разветвления, сохраняя изменения в файле .patch
.
Однако создания файла исправления недостаточно.При развертывании его также необходимо применить перед сборкой.Что переводит в следующую строку в сценарии развертывания:
docker exec -it {container-name} bash -c "git apply --ignore-whitespace patches/{package-name}+{package-version}.patch"
, который должен быть запущен перед тем, который запускает npm run build
.
И, опять же, он работает.
Вопрос
Я ищу способ автоматизировать захват каждого файла в папке patches/
и применять его, без указанияих один за другим .Так что всякий раз, когда новый .patch
помещается в папку патчей (или изменяется существующий), он автоматически применяется к пакету перед сборкой, без необходимости изменять сценарий развертывания.
Я нашел этот вопрос , который, по-видимому, подсказывает
git am --ignore-whitespace patches/*.patch
, может помочь (конечно, внутри консоли докера).Однако на странице man
на git-am
написано:
Применить серию исправлений из почтового ящика
Какой почтовый ящик?Я хочу применить изменения из папки.При попытке ввести команду am
консоль жалуется, что не знает, кто я (требуется электронная почта и пароль).
Нужно ли рассматривать это как простой случай создания сценария bash (файл .sh
), чтения всех файлов из папки и запуска нескольких команд git apply
в for
?
Есть ли более "мерзкий" способ / команда для этого?
Будет ли разумнее делать это с помощью сценария npm?