Я занимаюсь разработкой веб-базы данных, которая уже используется для примерно десятка отдельных установок, большинством из которых я также управляю.Каждая установка имеет достаточное количество локальных настроек и настроек.Просто переключившись на Mercurial с SVN, я хотел бы воспользоваться его распределенным характером для отслеживания локальных изменений.Я установил каждый установленный сервер как свое собственное хранилище (и настроил apache, чтобы он не обслуживал каталоги .hg).
Моя сложность заключается в том, что дерево разработки также содержит локальную конфигурацию, и я хочу избежать размещения каждого битаоб этом в неверсионном файле конфигурации.Итак, как мне настроить, чтобы избежать распространения локальной конфигурации в главное хранилище и в установленные копии?
Пример: У меня есть длинный файл config.ini, который должен быть версионным ираспределены.«Чистая» версия содержит заполнители для параметров соединения с базой данных, и я не хочу, чтобы пароли сервера разработки попадали в репозитории для установленных копий.Но время от времени я буду вносить изменения (например, новые значения по умолчанию), которые мне нужно распространять.В аналогичной ситуации есть несколько файлов.
Лучшее, что я мог до сих пор разработать, - это установить mq и превратить локальные модификации в патч (два патча, на самом деле, с логически отдельными наборами изменений).Каждый раз, когда я хочу зафиксировать регулярные изменения в репо local , мне нужно извлекать все патчи, фиксировать модификации и повторно применять патчи.Когда я буду готов выдвинуть мастер-репо, я должен снова вытолкнуть патчи, подтолкнуть и повторно применить их.Все это запутанно и подвержено ошибкам.
Единственная другая альтернатива, которую я вижу, - это забыть о push и распространять наборы изменений как патчи, что кажется еще худшим решением.Может кто-нибудь предложить лучшую настройку?Я не могу себе представить, что это такая необычная конфигурация, но я ничего о ней не нашел.
Редактировать: После рассмотрения предложений здесь я перехожу квывод, что именованные ветки плюс rebase обеспечивают простое и работоспособное решение.Я добавил описание в форме моего собственного ответа.Пожалуйста, посмотрите.