#mercurial #hook #updates
#mercurial #перехват #Обновления
Вопрос:
В настоящее время я работаю над проектом, который находится под mercurial
контролем, и я хотел получить привязку при обновлении для редактирования .htaccess
заполнения, чтобы избежать изменения APPLICATION_ENV
в соответствии с «режимом», в котором приложение должно запускаться / загружать конфигурации / подключаться к базе данных.
Структура моего репозитория выглядит следующим образом :
Main dev repo (ENV : development)
-- Stable repo (Production version) (ENV : production)
-- Local dev repo (working version) (ENV : development)
-- Prototype repo (prototyping repo) (ENV : prototype)
Следующая часть .htaccess
, которую я хотел бы отредактировать, является следующей (первые строки файла) :
# Application var
SetEnv APPLICATION_ENV development
Я не возражаю против запуска python
скрипта (или любого другого языка) Я ищу правильный перехват, чтобы поместить в .hghgrc
файл
Ответ №1:
Это неправильно, поскольку это изменило бы фактический файл. Следующий ваш коммит фактически зафиксирует это изменение в вашем репозитории.
Вместо этого рекомендуемый подход заключается в выполнении следующего:
- Создайте файл шаблона и зафиксируйте его в своем репозитории, т.Е.
.htaccess.template
- Добавьте фактический файл,
.htaccess
в.hgignore
файл, чтобы заставить Mercurial избежать этого - Локально создайте копию из файла шаблона в фактический файл, а затем отредактируйте это
Это гарантирует, что изменения в реальном файле, какими бы они ни были, не будут зафиксированы в вашем репозитории.
Некоторые системы конфигурации также поддерживают условные включения, так что вы можете сделать что-то вроде if extra config file X exists, load X as well
, а затем вместо этого выполните следующее:
- Передайте фактический файл в репозиторий, но сделайте его простым, содержащим значения по умолчанию
- Завершите файл таким include-заявлением
- Добавьте имя файла, который вы включаете в
.hgignore
файл, чтобы не передавать такой файл в репозиторий
Это гарантировало бы, что любой может дополнить или переопределить конфигурацию по умолчанию, добавив свою собственную версию этого файла, который будет включен.