Ветвление: разные файлы конфигурации для выпуска/разработки

Я унаследовал проект, и мы используем git. У нас есть несколько сред (dev, test, prod). Предыдущая команда в основном воссоздавала все на каждом экземпляре, используя те же учетные записи, пароли, sid и т. д. Единственное, что изменилось, — это сопоставление имен хостов в /etc/hosts. Чтобы он подключался к другому серверу базы данных.

Это создает проблему, потому что я не могу, например, скопировать схему, чтобы разработчик мог провести эксперимент, используя тот же экземпляр базы данных, что и основной сервер разработки.По сути, мне нужно создать новый экземпляр базы данных на другом хосте и изменить /etc/hosts, чтобы он указывал на этот новый сервер.

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

Еще одна ситуация, в которой может потребоваться использование другой версии файла, — отладка. Скажем, я использую инфраструктуру регистратора javascript и добавляю код отладки, который не хотел бы поставлять с производственной версией. Я не хочу добавлять материал регистратора при разработке/тестировании, а затем снова удалять его перед выпуском. Можно забыть это сделать.

Как правильно обращаться с разными «версиями» файла для разных веток? Есть ли способ иметь ветку, которая остается синхронизированной с последним кодом на мастере, но с несколькими измененными файлами конфигурации/кода? Я не ожидаю, что он будет синхронизироваться автоматически, но я хотел бы иметь возможность не объединять файлы конфигурации (или их части), не игнорируя их полностью (?). Например: не объединяйте строки 6,7 (имя пользователя и пароль db), но объединяйте другие изменения в файлах.

31
задан robertrv 9 March 2012 в 15:21
поделиться