Самый простой способ использовать Mercurial для управления различиями между веб-разработкой и развертыванием? - PullRequest
2 голосов
/ 27 октября 2010

Я использую Mercurial для разработки сайтов. Я "думаю", что я использую это правильно.

Я развиваюсь на своей машине разработки, фиксирую довольно регулярно. Я буду регулярно отправлять свои коммиты в мой размещенный репозиторий site-dev.

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

Однако необходимо внести некоторые изменения (изменение каталогов с localhost на www.example.com, изменение соединения с БД и т. Д.).

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

Что я не знаю, как это сделать, так это управлять этим процессом. Я немного потерян, кроме того, что я делаю, толкаю и тяну с помощью hg. Я один разработчик и даже не сделал слияния.

Есть ли какой-нибудь способ сохранить определенный набор изменений и просто применить его, надеюсь, даже до того, как я перенесу репо на действующий сервер?

Я думаю, вы можете сказать по моему вопросу, что я сейчас немного занята работой с hg и workflow;)

Ответы [ 2 ]

4 голосов
/ 27 октября 2010

Это мое понимание:

По сути, вы пытаетесь создать среду разработки, промежуточного размещения и развертывания.Вы разрабатываете с использованием репозитория 'development', тестируете его в промежуточной среде, а затем, когда все удовлетворено, вносите эти изменения в репозиторий развертывания.А когда вы переходите от промежуточного этапа к развертыванию, вам необходимо изменить данные среды / конфигурации.

Мое мнение: вам вообще не следует изменять конфигурацию.

У вас должны быть такие файлы конфигурации, какчто у вас есть

  1. файл базовой конфигурации

    basic.conf

  2. Переопределения, зависящие от среды

    basic.dev.conf, basic.staging.conf и basic.deploy.conf

  3. Использовать переменную среды:

    Переопределения к основным данным конфигурации должны быть определены через переменную среды
    :APP_ENV: dev или staging or deploy

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

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

2 голосов
/ 27 октября 2010

Я бы оставил работающий сервер вне контроля версий. Это означает, что у меня будет небольшой скрипт «install», который извлекает обновления из хранилища, удаляет все ненужные файлы разработки и применяет правильные файлы конфигурации. Конфигурационные файлы и файлы разработки должны быть в управлении версиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...