Лучшая практика - 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)
Другие вопросы по тегам