Решение Zerkms является быстрым, легким и чистым, и, вероятно, является лучшим выбором для предотвращения отслеживания / публикации защищенного контента; однако, как вы говорите: «Если он не находится под контролем источников, он не существует». Я обнаружил, что гораздо чаще то, что я пытаюсь избежать контроля над исходным кодом, это не проблема безопасности, а просто настройка конфигурации. Я полагаю, что эти должны быть отслежены, и у моего текущего работодателя есть довольно умные настройки для решения этой проблемы, которые я постараюсь упростить / обобщить / обобщить здесь.
REPOSITORY
code/
...
scripts/
configparse.sh
...
config/
common.conf
env/
development.conf
testing.conf
production.conf
users/
dimo414.conf
mycoworker.conf
...
hosts/
dimo414-laptop.conf
dimo414-server.conf
mycoworker-laptop.conf
...
local.conf*
makefile
.conf*
* untracked file
Надеемся, что идея здесь довольно ясна, мы определяем настройки на каждом соответствующем уровне, позволяя очень детально контролировать поведение кодовой базы логичным и последовательным образом.
Сценарий scripts/configparse.sh
читает все необходимые файлы конфигурации по очереди и создает .conf
из всех найденных настроек.
config/common.conf
является отправной точкой и содержит логические значения по умолчанию для каждого параметра. Многие, вероятно, будут перезаписаны, но здесь указано что-то . Ошибка в том, что параметр найден в другом файле, который не задан в common.conf.
config/env/
контролирует поведение в различных средах, например, указывая на правильные серверы баз данных.
config/users/
ищет файл $USER.conf
, полезный для установки вещей, которые меня интересуют, таких как повышение уровня ведения журнала для аспектов, над которыми работает моя команда, или настройка поведения, которое я предпочитаю использовать на всех моих машинах.
config/hosts
делает то же самое для машин, ища $HOSTNAME.conf
. Полезно для специфичных для машины настроек, таких как пути к приложениям или каталоги данных.
config/local.conf
- это неотслеживаемый файл, позволяющий устанавливать значения и / или содержимое, относящиеся к извлечению, которые вам не нужны в управлении версиями.
Совокупность всех этих настроек выводится в .conf
, что и ищет остальная часть кодовой базы при загрузке настроек.