<> ## This page should probably be redirected to Subversion, but somebody needs to move any relevant and correct material there that isn't duplicated See also: [[Subversion]] ---- ||<>|| [[http://subversion.tigris.org|Subversion]], also known as svn, is a version control system much like the Concurrent Versions System (CVS). Version control systems allow many individuals (who may be distributed geographically) to collaborate on a set of files (typically source code). Subversion has all the major features of CVS, plus certain new features that CVS users often wish they had. In the following the installation of Subversion on a Feisty-Release is written down. == Apache Installation == To use Subversion via the http or https protocol, you need apache installed on your server. Install Apache2 according to the description on [[https://help.ubuntu.com/community/ApacheMySQLPHP|ApacheMySQLPHP]]. == Subversion Installation == Please use the following commands for installing Subversion on the server. {{{ apt-get install subversion apt-get install subversion-tools apt-get install libapache2-svn }}} This installs Subversion as well as the needed Apache Module. This module must run, if you would like to use apache and svn. == Configuration == To use Subversion in combination with apache2, you need to configure Apache. Add the file svn.conf with the following content to the directory /etc/apache2/conf.d: {{{ Dav svn SVNParentPath /var/svn AuthType Basic AuthName "SVN Repositories" AuthUserFile /etc/apache2/dav_svn.passwd AuthzSVNAccessFile /etc/apache2/dav_svn.authz # The following three lines allow anonymous read, but make # committers authenticate themselves. Require valid-user }}} To create the file dav_svn.passwd, please use the htpasswd2 program. This will allow you to use a basic authentication for the subversion repositories. With the AuthzSVN Access File you can restrict access of certain users to specific repositories. This file can look like: {{{ [groups] devs = tester [/] * = r [sample:/] tester = rw [testproject:/] @devs = rw }}} The before mentioned file will restrict the usage of the Subversion directory to all users in the group devs (username is tester here). All other users can only read the repositories. All SVN-Projects are stored in the directory /var/svn. You can create new SVN-projects using the commandline tool svnadmin (see [[http://svnbook.red-bean.com/en/1.0/ch05s02.html|Subversion Red Book]]) Now you can reach all your SVN projects via {{{ http:///svn/. }}} To use another web-interface, you can also install websvn {{{ apt-get install websvn }}}