Как может я определенные для системы транспортировки файлы конфигурации в repo/project?

У меня есть рубиновый проект, и хост базы данных и порт могли бы отличаться на dev и производстве. Мне нужен способ получить различные значения для тех, которые в мои сценарии для этих двух сред.

Проект должен быть завершенным - таким образом, должен быть некоторый способ определить значения по умолчанию. Я не хочу, чтобы клон пропустил файлы конфигурации. Так игнорирование их полностью не будет работать.

Как Вы решаете эту проблему с мерзавцем?

12
задан Sean Clark Hess 28 January 2010 в 13:56
поделиться

1 ответ

Я бы порекомендовал использовать:

  • файл конфигурации шаблона (файл с именем переменной вместо значения хоста и порта)
  • сценарий возможность заменить эти имена переменных соответствующими значениями в зависимости от среды (обнаруженной скриптом)

Решением Git является драйвер фильтра атрибутов git (см. также книгу GitPro ).

Драйвер фильтра состоит из команды clean и команды smudge , любую из которых можно не указывать.
После проверки , когда указана команда smudge , команда получает объект blob со стандартного ввода, а его стандартный вывод используется для обновления файл рабочего дерева.
Аналогично, команда clean используется для преобразования содержимого файла рабочего дерева при регистрации.

Таким образом, сценарий (управляемый с помощью Git), на который ссылается пятно, может заменить все переменные значениями, зависящими от среды, в то время как чистый сценарий восстановит свое содержимое в нетронутый файл конфигурации.

clean smudge

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

21
ответ дан 2 December 2019 в 07:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: