Как настроить Mercurial, чтобы не фиксировать определенные файлы конфигурации? - PullRequest
5 голосов
/ 13 января 2011

Моя команда переходит на Mercurial.Все наши проекты имеют конфигурационный файл (web.config или app.config, а также несколько файлов bat - мы магазин C #).Эти файлы должны быть частью репозитория.Когда разработчик клонирует репозиторий, для его работы необходимы локальные изменения в их конфигурационных файлах.Например, для файла конфигурации проекта может потребоваться строка подключения к базе данных разработчика или другая информация, относящаяся к среде.Мы не хотим, чтобы эти изменения попали в репозиторий.Время от времени мы вносим изменения в эти конфиги, которые должны попасть в репозиторий и распространяться среди команды и, в конечном счете, для клиента.

Какой самый простой способ для нас настроить или использовать Mercurial, чтобыэти файлы не передаются случайно?Я хотел бы быть вынужден сделать явную фиксацию таких файлов, но слияния из репо автоматически сойдут в обновлениях.

Это должно быть проблемой, с которой столкнулся кто-то другой, но как новички в Mercurial мывсе в растерянности для лучшего решения.

Редактировать:

Подобный вопрос, который может иметь общие решения, но не совпадает с этим вопросом, можно найти по адресу: Файл условного игнорирования ртути

Я включаю это в случае, если другой вопрос может дать ответ, который вы ищете.

Ответы [ 2 ]

6 голосов
/ 13 января 2011

Типичный способ справиться с этим - сохранить шаблоны для файлов конфигурации в вашем хранилище и добавить фактические файлы конфигурации в список игнорирования в Mercurial.

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

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

1 голос
/ 16 декабря 2013

В вашем .hg/hgrc файле сделайте это:

[defaults]
commit = -X Projectname/web.config

(при условии, что «ProjectName» является подкаталогом проекта)


Edit:

Кроме того, если вы используете Tortoise HG - добавьте также:

[tortoisehg]
ciexclude = Projectname/Web.config,Projectname/App_Data/DBFile.mdf

( между прочим не обращайте внимания на косую черту в пути!

...