Mercurial - хранение развернутых и разрабатываемых репозиториев - PullRequest
2 голосов
/ 20 июля 2010

Я работаю на веб-сайте PHP, где я только что добавил переключатель для того, в какой среде он работает - development, когда он работает на моем локальном сайте, и production, когда он работает в Интернете. хост:

<?php
define('ENV','development');
//or
define('ENV','production');

У меня есть сайт под VC с Mercurial, и обычно я просто развертываю свой сайт с hg push (сервер тоже запускает hg), однако, с добавлением этого переключателя, «рабочий» сайт всегда будет отличаться от « разработки », в котором развернутая версия всегда будет иметь значение production вместо development.

Это означает, что мой процесс развертывания начинается с

  1. Разработка
  2. Тест
  3. hg commit -m "Made changes"
  4. hg push
  5. ssh host hg update
  6. Перейти к 1.

до

  1. Разработка
  2. Test
  3. hg commit -m "Made changes"
  4. Изменить development на production
  5. `hg commit -m" dev -> prod "
  6. hg push
  7. ssh host hg update
  8. (позже :) Изменить production -> development
  9. hg commit -m "prod -> dev"
  10. Перейти к 1.

Что явно не здорово.

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

Ответы [ 3 ]

3 голосов
/ 20 июля 2010

Если у вас есть веб-сервер Apache, вы можете просто установить его в config сервера / vhost / per-directory / .htaccess:

SetEnv Deployment development

или в производстве

SetEnv Deployment production

А в вашем скрипте используйте:

define('ENV',$_ENV['Deployment'])

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

http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv

3 голосов
/ 20 июля 2010

Вместо того, чтобы иметь переключатель, есть ветка разработки и производственная ветка.

hg up prodbranch 
hg merge -r devbranch
hg push
ssh yourserver hg update prodbranch
0 голосов
/ 20 июля 2010

Думал ли ты о том, чтобы просто не переводить файл конфигурации в систему контроля версий?

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