Лучшая практика - Git + Build Automation - Хранение конфигов отдельно
В поисках лучшего подхода к разделению моих файлов конфигурации, но не вводить дополнительные шаги для новых разработчиков, настраивающих их среды.
Я предполагаю, что подмодуля было бы достаточно, чтобы выполнить эту работу, но тогда как бы я легко переключал конфиги в зависимости от поставленной задачи, регулярно извлекал конфигурацию DEV, вытягивал ветку PROD конфигурации repo во время сборки?
Должно быть:
- Легко и безболезненно для новых разработчиков.
- Файлы конфигурации PROD должны быть доступны только для выбора пользователей + сборка пользователя.
Заранее спасибо.
1 ответ
Это называется драйвер фильтра содержимого, и это позволяет вам объявить, в .gitattributes
файл (и только для вашего типа конфигурационных файлов) сценарий, который будет автоматически при оформлении заказа:
- объединить файл шаблона файла конфигурации (
config.tpl
) - с правильным значением файла конфигурации (
config.dev
,config.prod
...) - для того, чтобы произвести не версионный файл конфигурации (личный файл)
Смотрите раздел " Настройка атрибутов Git - Git ":
echo '*.cfg.tpl config' >> .gitattributes
git config --global filter.config.smudge yourScript
При таком подходе вам не нужны субмодули, но вы можете сгенерировать столько конфигурационных файлов, сколько вам нужно, в зависимости от вашей среды, например, вашей ветки:
Как и в " Найти имя ветки Git в перехвате после обновления ", ваш сценарий smudge может выяснить, в какой ветке он выполняется в данный момент:
#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)