I just enabled SVN access on my server through the web interface. It was quite easy and, since we have a Postgres DB authentication, there’s no need to edit inconvenient password files
All I had to do was to enable the SVN module: link dav_svn.{load|conf}
in mods-enabled
and add the following line to the SSL-ed vhost.
<Location "/svn/foo">
SVNPath /var/lib/svn/foo
Dav svn
<LimitExcept OPTIONS GET>
Require user user@example.com user2@example.com
</LimitExcept>
</Location>
Since the SSL-ed vhost already requires authentication, I didn’t have to change anything. I also had to create an SVN repository svnadmin create --fs-type fsfs /var/lib/svn/foo
and change the permissions to www-data
.
The checkout command is:
svn –username user@example.com –password my_secret_password co https://my.example.com/svn/foo
SVN caches the username and password, so any further operations are done without prompting you for it. If you don’t like it, you can disable it with --no-auth-cache
.
Finally, one annoying thing. Initially, I would just try to connect without –username and SVN would first try my Unix user name and then ask for it. Unfortunately, some (but not all) users I tried in this way would get a mysterious:
svn: PROPFIND request failed on '/svn/foo'
svn: PROPFIND of '/svn/foo': authorization failed (https://example.com)
WTH?