Хук предварительной фиксации Mercurial для изменения настроек

Я пытаюсь настроить свое веб-приложение (расширение браузера), чтобы я мог беспрепятственно переключаться между разработкой, тестированием и производством. По большей части я избегал жесткого кодирования каких-либо URL-адресов в приложении, но есть несколько мест, где это невозможно:

  • Как расширение браузера, которое внедряет js, я не могу использовать относительные пути (или location.host) при вставке iframe на страницу, поскольку по умолчанию он будет привязан к домену, в который он вставляется. (но на самом деле мне нужно, чтобы это был локальный хост для тестирования, а затем www.mydomain.com, как только я нажму в прямом эфире)
  • Мне также иногда нравится тестировать как тестовую, так и живую базу данных, но я не хочу постоянно переключать этот флаг и рисковать фиксацией настроек тестовой базы данных.

Что я действительно хотел бы сделать, так это выполнить поиск/замену перед фиксацией (в паре файлов x.php, y.js), чтобы заменить локальный хост на www.mydomain.com.

Может ли кто-нибудь сказать мне, как это сделать с помощью хука предварительной фиксации (или любого другого метода)?

ИЗМЕНИТЬ:

Хотя я разместил это в разделе mercurial hooks - я на 100% открыт для любого другого метода автоматизации изменений...

  • Я согласен с внесением изменений на рабочем сервере после внесения изменений.
  • Я предполагаю, что для изменений в БД я мог бы просто удалить файл конфигурации из своего репозитория и сохранить версию предварительной конфигурации на моем рабочем сервере, но мне это не нравится, потому что вытягивание из моего репо на новый сервер/путь потянет весь приложение без каких-либо настроек БД... (просто выкладываю сюда свои идеи на случай, если это поможет кому-то с решением)

Спасибо!


person user2197645    schedule 18.05.2013    source источник
comment
Спрашивая о ловушках, полезно указать, в какой операционной системе вы их используете, чтобы люди знали, какой язык сценариев использовать.   -  person Steve Kaye    schedule 18.05.2013
comment
Спасибо: моя среда разработки — Windows 7 (IIS), я использую мимозажи для перехода между разработкой и тестированием, а затем я использую Kiln для управления исходным кодом. На производственной стороне я запускаю сервер Ubuntu с mercurial.   -  person user2197645    schedule 18.05.2013


Ответы (1)


Я бы поместил что-то в файл, который не находится под контролем версий (т.е. добавил бы его в ваш .hgignore). Сделайте что-то ужасно неудачным, если файла нет (или выберите нормальное значение по умолчанию), и теперь вы можете легко переключить имя хоста в этом файле (не рискуя его коммитами).

person djc    schedule 20.05.2013