Setup a subversion (svn) server in Debian
Posted by trikks on June 15, 2010
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!
# 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 svnSVNParentPath /var/svnAuthType BasicAuthName "Subversion Repository"AuthUserFile /etc/apache2/dav_svn.passwdRequire 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).