Difference between revisions of "Configure SVN"

From Organic Design
(Setting up the SVN repository: use 775 or web can't read repo)
m (add cat)
Line 1: Line 1:
| role = sysop
| role = sysop
| status = in use
| status = in use

Revision as of 04:38, 1 June 2009

Procedure.svg Configure SVN
Organic Design procedure

Setting up the SVN repository

The necessary packages should already have been installed as part of the organicdesign-server package, but if not, you'll need to apt-get install subversion libapache2-svn. Then the first step is to create the repositories as in the following example.

mkdir /svn
svnadmin create --fs-type fsfs /svn/extensions
svnadmin create --fs-type fsfs /svn/tools

Next create a subversion group and add your developers to it:

groupadd subversion

addgroup earl subversion
addgroup tabatha subversion

chown -R www-data:subversion /svn/*
chmod -R 775 /svn/* 

Configuring client access

The first issue with client access over SSH is that we use a non-standard port, but there is no svn switch to set this, so we need to create a specific tunnel in the subversion configuration for our server with the correct port set. Add the following to the tunnels section of ~/.subversion/config file using your own servers name and SSH port.

od = /usr/bin/ssh -p 1729

You will now be able to check out a repository or branch using the following syntax (the USER@ portion is only required if you are connecting from root or another users shell session).

mkdir /my/local/tools
svn co svn+od://USER@svn.organicdesign.co.nz/svn/tools/trunk /my/local/tools

Note that you will be required to enter your SSH password for every transaction with the svn repository, so the following steps are required to get rid of this annoying problem.


MediaWiki uses viewvc for web viewing of their svn repositories, but the installation and configuration are a bit of a pain since its a Python CGI script rather than PHP like all our other web applications. So for this reason we're using the PHP websvn from Tigris instead.

Installation of websvn is a simple matter of downloading into /var/www/domains/websvn and creating a sub-domain and virtual host entry for it as for any other PHP web application. Next make a copy of the default config file:

cd /var/www/domains/websvn/include
cp distconfig.php config.php

And add a single entry in the repositories section pointing at the parent directory of your repositories, for example:


And that's all there is to it! no simply browse to your sub-domain, ours is http://svn.organicdesign.co.nz