Я попытался разместить Подвижный репозиторий HG с помощью Scriptalias.
ScriptAlias/hg/"htdocs/hgwebdir.cgi"
Если я перехожу к Chrome, он отображает содержание cgi файла. В IE это представляет однако изображения, и ссылки не отображены. В любом случае не показывают репозиторий, который я хочу отобразить.
Кому-либо удалось получить эту работу с VisualSVN? Также это будет работать, если у меня будут аутентификация Windows и https?
Вот альтернативная установка с использованием mod_wsgi (быстро!), Комбинированного каталога репозитория, и вы можете управлять доступом на уровне репозитория Mercurial из графического интерфейса VisualSVN Server.
Загрузите 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.
Вы можете запускать hgwebdir за различными модулями аутентификации и https, при условии, что ваш веб-сервер обрабатывает их до того, как переменная REMOTE_USER будет передана CGI.
Я не знаю visualsvn, но ваш ScriptAlias очень похож на Apache. Вам нужна строка AddHandler для .cgi?
Предполагая, что у вас установлен и работает 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.