Возможно ли маршрутизировать несколько хранилищ Subversion без необходимости использования отдельных виртуальных хостов? - PullRequest
0 голосов
/ 11 февраля 2011

Мне просто интересно, возможно ли это, и если да, то может ли кто-нибудь привести меня в правильном направлении, пожалуйста?

По сути, вот что делает моя текущая версия Linux:

<VirtualHost *:443>
    ServerName co.svnr.net
    ServerAdmin admin@svnr.net
    ServerAlias co

    <Location /shauny/test>
        DAV svn
        SVNPath /home/svn/public/shauny/test
        AuthName "Test repository"
    </Location>

    #a million other Locations later....

    SSLEngine on
    SSLCertificateFile /home/certs/svnr/server.crt
    SSLCertificateKeyFile /home/certs/svnr/server.key
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown 
</VirtualHost>

Это здорово и работает, но это просто невозможно, скажем, в 50+ svn репозиториях. Идеальным решением было бы указать, скажем, на обработчик в PHP5 (размещенный на компьютере с Linux), который принимает имя пользователя / хранилище в суперглобальном $ _GET и затем перенаправляет их в хранилище (если оно существует, в противном случае перенаправьте на 404). 1006 *

Но ... это вообще возможно?
Может ли PHP5 читать репозитории Subversion и аутентификацию?

По моему мнению, иметь PHP5 было бы более целесообразно, так как я могу генерировать некоторые журналы, основанные на использовании и т. Д. *

Большое спасибо, ребята, если вам что-то непонятно, дайте мне знать.

Ответы [ 2 ]

1 голос
/ 11 февраля 2011

У нас была такая установка на нашем устройстве разработчика (по общему признанию, только с 3 репозиториями), и мы просто установили директиву Location для указания на корень subversion и использовали SVNParentPath:

<Location /shauny>
        DAV svn
        SVNParentPath /home/svn/public/shauny
        AuthName "Test repository"
</Location>
0 голосов
/ 11 февраля 2011

Да, это возможно.

Посмотрите в SVNParentPath.Это, вероятно, то, что вы ищете.Не знаю, насколько хорошо он будет работать с настройкой вашего виртуального хоста, и вам, возможно, придется перемещать каталоги (если они не имеют общего родителя), но это, вероятно, шаг в правильном направлении.

Проблемы возникают только тогда, когда вам нужны разные настройки на основе местоположения, например, если вы аутентифицируете каждый репозиторий с другим именем авторизации.В этом случае, возможно, было бы лучше оставить конфигурацию нетронутой.

Что касается обертывания модуля SVN через интерфейс PHP для добавления кода PHP по воле случая.Хотя это должно работать в теории, я бы избежал этого на практике.Журналирование SVN любого вида может быть сделано для каждого репозитория путем добавления хуков pre / post в операциях commit, read и т. Д.Глобальное ведение журнала «каждый репо» может быть лучше обработано путем добавления директив Apache.

...