Хостинг Mercurial HG через сервер VisualSVN - PullRequest
5 голосов
/ 12 марта 2010

Я пытался разместить репозиторий Mercurial HG, используя Scriptalias.

ScriptAlias ​​/ hg / "htdocs / hgwebdir.cgi"

Если я зайду в Chrome, он отобразит содержимое файла cgi. В IE это делает рендеринг, однако изображения и ссылки не отображаются. В любом случае репозиторий, который я хочу отобразить, не отображается.

Кому-нибудь удалось заставить это работать с VisualSVN? Также будет ли это работать, если у меня Windows-аутентификация и https?

Ответы [ 4 ]

6 голосов
/ 10 апреля 2010

Вот альтернативная настройка, использующая mod_wsgi (быстро!), Объединенный каталог репозитория, и вы можете управлять доступом на уровне репозитория Mercurial из графического интерфейса сервера VisualSVN.

Загрузите mod_wsgi.so для Apache 2.2 Win32 и поместите в «C: \ Program Files \ VisualSVN Server \ bin».

Скопируйте hgwebdir.wsgi из вашей установки Mercurial (каталог contrib) в "C: \ Program Files \ VisualSVN Server \". Это должно выглядеть примерно так:

import sys
sys.path.insert(0, "C:\Program Files\Mercurial\library")
from mercurial.hgweb.hgwebdir_mod import hgwebdir
application = hgwebdir('hgweb.config')

Создайте файл конфигурации "C: \ Program Files \ VisualSVN Server \ hgweb.config".

[paths]
/ = c:/Repositories/*

Вставьте следующее в «C: \ Program Files \ VisualSVN Server \ conf \ httpd-custom.conf». Вам следует настроить значения Auth * на основе раздела httpd.conf.

LoadModule wsgi_module bin/mod_wsgi.so
WSGIScriptAlias /hg "hgwebdir.wsgi"

<Location /hg/>
    AuthName "Mercurial Repositories"
    AuthType VisualSVN
    AuthzVisualSVNAccessFile "C:/Repositories/authz-windows"
    AuthnVisualSVNBasic on
    AuthnVisualSVNIntegrated off
    AuthnVisualSVNUPN Off

    SVNParentPath "C:/Repositories/"

    require valid-user
</Location>

Создать хранилище Mercurial:

hg init C:\Repositories\hgtest

Теперь вы должны иметь доступ к / hg через браузер и управлять авторизацией на уровне репозитория с помощью инструмента VisualSVN Server.

2 голосов
/ 10 апреля 2010

Если у вас установлен и работает Python 2.6, вот шаги, которые я предпринял.

Получите «mod_cgi.so», созданный для Apache 2.2 Win32 и поместите его в «C: \ Program Files \ VisualSVN Server \ bin».

Вставьте следующее в «C: \ Program Files \ VisualSVN Server \ conf \ httpd-custom.conf»

LoadModule cgi_module bin/mod_cgi.so
ScriptAliasMatch ^/hg(.*) "cgi-bin/hgweb.cgi$1"

Создайте каталог cgi-bin, «C: \ Program Files \ VisualSVN Server \ cgi-bin». И поместите в него hgweb.cgi . Убедитесь, что это выглядит примерно так:

#!c:/Python26/python.exe -u

import sys
sys.path.insert(0, "C:\Program Files\Mercurial\library")

import cgitb
cgitb.enable()

from mercurial.hgweb.hgwebdir_mod import hgwebdir
import mercurial.hgweb.wsgicgi as wsgicgi

application = hgwebdir('hgweb.config')
wsgicgi.launch(application)

Создайте файл с именем hgweb.config в каталоге cgi-bin.

[paths]
/ = c:/HgRepositories/*

Скопировано «C: \ Program Files \ Mercurial \ templates» в «C: \ Program Files \ Mercurial \ library \ templates».

Создайте папку «C: \ HgRepositories» и «hg init c: \ HgRepositories \ test».

Перезапустите VisualSVN Server, откройте браузер, наслаждайтесь вашим репозиторием Mercurial.

0 голосов
/ 26 марта 2012

Начиная с версии 1.6 Mercurial, скрипт hgwebdir.wsgi имеет был объединен с помощью скрипта hgweb.wsgi. Где бы ни находился hgwebdir.wsgi указанные в этих направлениях, вы можете заменить hgweb.wsgi вместо сценария.

https://www.mercurial -scm.org / вики / modwsgi

0 голосов
/ 12 марта 2010

Вы можете просто запустить hgwebdir за разными модулями аутентификации и https, если ваш веб-сервер обрабатывает их до того, как переменная REMOTE_USER будет передана CGI.

Я не знаю visualsvn, но ваш ScriptAlias ​​очень похож на Apache. Вам нужна строка AddHandler для .cgi?

...