Добавление хука при обновлении в Mercurial (hg) - PullRequest
1 голос
/ 24 мая 2011

В настоящее время я работаю над проектом, который находится под управлением 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 (или любой другой язык). Я ищу правильный крючок для вставки файла .hg\hgrc

1 Ответ

1 голос
/ 26 мая 2011

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

Вместо этого рекомендуется сделать следующее:

  1. Создайте файл шаблона и зафиксируйте его в своем хранилище, т.е. .htaccess.template
  2. Добавьте фактический файл .htaccess в файл .hgignore, чтобы Mercurial избегал его
  3. Локально, сделайте копию из файла шаблона в фактический файл, а затем отредактируйте это

Это гарантирует, что изменения в реальном файле, какими бы они ни были, не будут зафиксированы в вашем хранилище.

Некоторые системы конфигурации также поддерживают условные включения, так что вы можете что-то вроде if extra config file X exists, load X as well, и вместо этого вы сделаете следующее:

  1. Зафиксируйте фактический файл в хранилище, но сделайте его пустым, содержащим значения по умолчанию
  2. Завершить файл таким оператором включения
  3. Добавьте имя файла, который вы включаете, в файл .hgignore, чтобы вы не фиксировали такой файл в хранилище

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

...