Welcome to the navigation

Elit, non pariatur, enim exercitation in ex excepteur duis amet, dolore laboris sint sunt aute esse aliquip dolor magna cupidatat adipisicing dolore anim ut est. Minim laboris fugiat incididunt est dolore commodo non ipsum eiusmod sint officia cupidatat elit, occaecat deserunt aliquip nulla amet, qui sunt velit dolore dolor consequat

Yeah, this will be replaced... But please enjoy the search!

Setup a subversion (svn) server in Debian

Categories Tags
There are quite a few guides and howto's out there. Some a relevant but as usual most of them are crap and made without any regards to the one who will use them. Compatibility and usability should always be ranked high when setting up such an environment. One such thing is how to access the svn-server, there are these fancy ssh+svn://blabla which undoubtedly tightens the security by encrypting the connection in a pretty sophisticated manner. However the setup is complex and the usability disappears for "normal" users. The way to go is by http or https, I promise :) The compatibility with applications and platforms are unmatched, and the set up is fairly easy!

Lets start

Installation
# Install required packages
$ sudo apt-get install subversion libapache2-svn

# Create subversion repositories:
sudo mkdir /var/svn
sudo chown -R www-data:www-data /var/svn

# Edit the DAV_SVN Configuration
$ sudo nano /etc/apache2/mods-available/dav_svn.conf
It should look somethink like this (the dav_svn.conf file that is)
# IMPORTANT!
# remove the # in front of the <location and </location
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
#SSLRequireSSL      # this line must be added if you want SSL enabled
</Location>
Let's set up the Apache-server mod and create a repository
# Enable modules and restart 

$ sudo a2enmod dav_svn
$ sudo /etc/init.d/apache2 restart

# Create/enable a user account for dav_svn (the -c indicates the main user)
# Replace user1 with the adminname
$ sudo htpasswd -c /etc/apache2/dav_svn.passwd user1

# Next user2, user3, user4 etc...
$ sudo htpasswd /etc/apache2/dav_svn.passwd user2

# Testing
$ sudo svnadmin create /var/svn/test
$ sudo chown -R www-data:www-data /var/svn/test

# Testing (first enter local user password, then your svn user/pass)
$ svn co http://localhost/svn/test
To create new repositories just login and type
$ sudo svnadmin create /var/svn/myrepository
$ sudo chown -R www-data:www-data /var/svn/myrepository
To connect to your svn, simply type http://yourserverurl/svn/myrepository. This can be done in either a browser or svn-application like tortoise or versions (there are quite a few). Happy versioning!