Назад | Перейти на главную страницу

Иметь статический веб-контент и сервер Mercurial под одним и тем же URL-адресом

Я ищу способ отображать статический HTML-контент с помощью веб-сервера Apache 2, а также иметь репозиторий Mercurial под тем же URL-адресом. Например. под http://www.myserver.org/projectname HTML проекта должен быть доступен при просмотре с помощью обычного веб-браузера, но должна быть возможность клонировать репозиторий Mercurial проектов, используя hg clone http://www.myserver.org/projectname. Это в основном то, что http://bitbucket.org есть. я считать это можно было бы достичь, настроив Apache для использования hgweb.cgi скрипт только для запросов Mercurial, а не для обычного запроса HTML GET. Однако сейчас я не знаю, какие запросы использует Mercurial (надеюсь, не GET) и как соответствующим образом настроить Apache.

Еще немного предыстории:
При необходимости это для нескольких репозиториев / проектов (в настоящее время ~ 2400). Пока я пробовал hgweb как объяснено в Публикация репозиториев который хорошо работает для веб-представления репозитория, но не позволяет мне отображать какую-либо другую информацию, кроме автора, имени и описания (из .hg/hgrc [web] раздел). Подстановка переменной в hgweb очень ограничен и поэтому не позволяет предоставлять произвольные переменные. Я знаю, что могу просто иметь статические HTML-страницы и hgweb под разными URL-адресами, но это не соответствует установленным мне ограничениям.

Чтобы понять, какой запрос отправлять меркуриально - у нас есть отличный tcpdump.

Запускаю tcpdump, делаю hg clone http://selenic.com/hg

и посмотрите, что hg do GET request / hg? cmd = features, / hg? cmd = getbundle, / hg? cmd = batch

Я думаю, вы можете собрать все необходимые запросы для hg и настроить apache (или nginx, или какой-либо другой прокси) перенаправлять такие запросы на hgweb.cgi