Using http_dav_module for Subversion


#1

I have access to my svn projects like this:

server {
listen 80;
server_name svn.XYZ.com;
root /home/xyx/svn_repos;
autoindex off; # no dir listings
access_log /var/log/nginx/access.svn.log xyz_fmt;
client_body_temp_path /tmp/client_temp;

location ^~ /pub_repo/ {
auth_basic off;
autoindex on;
dav_access group:rw all:r;
dav_methods PUT DELETE MKCOL;
create_full_put_path on; # allow creation of new dirs
}

location ^~ /map_repo/ {
auth_basic “Map Repository”;
autoindex on;
dav_access group:rw all:r;
dav_methods PUT DELETE MKCOL COPY MOVE;
create_full_put_path on;
auth_basic_user_file /etc/nginx/pw_map_repo;
}

Which works. But access is not the same as svnserve service. I can’t
actually checkout when I specify the http url like this: svn co
http://svn.XYZ.com/map_repo xmap

Do I have a checkout syntax error? Or am I missing some config? Or
does the DAV module simply not provide a service that supports svn
checkout?


#2

I’m running the current beta:

etc/nginx$ nginx -V
nginx version: nginx/0.6.25
built by gcc 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
configure arguments: --with-http_dav_module --with-http_ssl_module


#3

Do you need to allow PROPFIND as well? I did a quick analysis of the
protocol using a script run under tcpsvd, and here’s the query I got
from `svn co http://localhost:22124/trunk bob’:

PROPFIND /trunk HTTP/1.1
Host: localhost:22124
User-Agent: SVN/1.3.1 (r19032) neon/0.25.5
Keep-Alive:
Connection: TE, Keep-Alive
TE: trailers
Content-Length: 300
Content-Type: text/xml
Depth: 0
Accept-Encoding: gzip
Accept-Encoding: gzip

Hope this helps, I’m interested in using nginx for SVN as well.

Randy Parker wrote:

I’m running the current beta:

etc/nginx$ nginx -V
nginx version: nginx/0.6.25
built by gcc 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
configure arguments: --with-http_dav_module --with-http_ssl_module


#4

Scratch that. Looks like the dav module doesn’t support PROPFIND.

Ok, time to get someone to make a SVN module for nginx… or extend the
dav module to support it…


#5

I believe PROPFIND is definitely needed for subversion checkout. I am
also interested in knowing Nginx + Subversion option, as currently, I
had to run an Apache process just for the subversion DAV.

-Liang
kingler from 72pines


#6

Hey,

I’d say it’s definitely worth looking into writing a module for SVN
support - there’s certainly enough demand for it.

I’d do it myself, but I’m swamped at work and with uni at the moment.
It’s definitely in the pipeline, though. Especially if one doesn’t even
need to have subversion installed.


#7

OK I did a bit of digging, seems the following methods are needed:
PROPFIND, REPORT, MERGE, MKACTIVITY, CHECKOUT. When I get a fair bit of
spare time, I’ll get to work writing an SVN module for nginx.


#8

Hi,

I’m very interested in such a module. After spending a day looking for a
more elegant way (than running an Apache in the back), it seems, that a
lot of other people have the same problem.

So any news about this?


#9

I too would love to see this happen. Apache is way to much of a beast to
run to simply get svn access behind Nginx


#10

On Oct 25, 2008, at 5:20 AM, Tom Kirkpatrick wrote:

I too would love to see this happen. Apache is way to much of a
beast to
run to simply get svn access behind Nginx

and svn rename doesnt work when using the apache web dav module.