Configure SVN

From Organic Design
Revision as of 06:59, 30 May 2009 by Nad (talk | contribs) (Setting up the SVN repository: use 775 or web can't read repo)
Jump to: navigation, search
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.

WebSVN

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:

$config->parentPath('/svn');


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

Doxygen