phpsvnmod-rewriteapache2mod-dav-svn

Possible to route to multiple subversion repositories without the need of individual virtual hosts?


I'm just wondering if it's possible, and if so could someone lead me into the right direction please?

Basically here's what my current Linux box is doing:

<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>

This is great and working, but it's just not feasible for say 50+ svn repositories. The ideal solution would to to point at say a Handler in PHP5 (whilst hosted on Linux machine) which accepts the username/repository in the superglobal $_GET and then redirects them to the repository (if it exists, otherwise redirect to 404).

But... is that even possible?
Can PHP5 read Subversion repositories and authentication?

Having PHP5 handle them would be more feasible in my opinion as I can generate some logs based on usage etc...

Much thanks guys, if you're unclear on anything let me know.


Solution

  • We had this sort of set up on our dev box (admittedly with only 3 repos) and we just set the Location directive to point to the subversion root and used SVNParentPath:

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