Mercurial развертывание - PullRequest
       0

Mercurial развертывание

0 голосов
/ 09 августа 2011

Я совершенно новичок в ртути, так что это может звучать глупо.
Я разрабатываю приложение PHP локально и помещаю изменения на удаленный сервер Linux. У меня есть скрипт hgweb.wsgi, публикующий мой репозиторий, доступный через URL (hg.example.com/repository).
Теперь мне интересно, как лучше всего автоматизировать развертывание приложения, чтобы увидеть его в действии на том же сервере, что и хранилище? Очевидно, я не могу просто зайти на hg.example.com/repository, так как он показывает только веб-интерфейс хранилища, а не приложение.

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Вы смешиваете две вещи, которые не обязательно связаны:

  • часть пути URL вашего репозитория и
  • путь к текущему хранилищу на вашем сервере.

Чтобы получить более полную картину, подумайте, что мы используем SSH, а не HTTP, для доступа к репозиторию. Это означает, что мы, вероятно, указываем полный путь к репо в файловой системе сервера в этом пути, например, для синхронизации с моим сервером в аналогичной настройке, я нажимаю на ssh://example.com//var/www/wsgi/example.com (у меня есть приложение WSGI, а не PHP, но это не важно сейчас). Само приложение доступно по адресу http://example.com/,, т. Е. Корень сайта, если /var/www/wsgi/example.com.

Что ж, теперь ничто не может помешать мне настроить HTTP-доступ к этому репо с помощью hgweb на субдомене hg.example.com, поэтому путь push-репо - http://hg.example.com/example.com.

Таким образом:

  • Я нажимаю на http://hg.example.com/example.com (репо пульсирует по этому URL)
  • Репо находится в /var/www/wsgi/example.com (путь к файловой системе сервера)
  • Этот каталог каким-то образом настроен для веб-сервера, который считается корневым для сайта
  • Корень сайта = http://example.com/

P.S. Не забудьте о хуке группы изменений, о котором упоминал Тон.

1 голос
/ 10 августа 2011

Вам нужно сделать две вещи:

  1. Добавить веб-сервер, который может обслуживать PHP-страницы (например, apache), и позволить ему обслуживать корень хранилища (как всегда, убедитесь, что он сохранен).)
  2. Добавить хук на сервер Mercurial для хука группы изменений.Этот хук может быть простым: update.changegroup = hg up

. Он обновит рабочую папку хранилища до последней версии.

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