Blog Linux

how to install subversion on centos

I finally decided to setup an online version control and chose subversion (instead of cvs which I use on my macbook). Initially, I was thinking of subscribing to github but the prospect of paying monthly did not bode well especially that it would only be me who will be updating the codes. Github has a free service though. But that's if you open-source your code.

Ok, enough for the chatter. Here's the steps for installing subversion.

Step 1: Install SubVersion via yum
yum install mod_dav_svn subversion

Step 2: Edit Apache Config
vi /etc/httpd/conf/httpd.conf

make sure to uncomment the following lines.
LoadModule authn_file_module modules/
LoadModule dav_module modules/

Step 3: Restart Apache
service httpd start

Step 4: Edit subversion.conf

cd /etc/httpd/conf.d/
vi subversion.conf

make sure the modules below are also uncommented
LoadModule dav_svn_module modules/
LoadModule authz_svn_module modules/

Add the following to allow a basic authentication and point Apache to where the actual repository resides.

<Location /repos>
DAV svn
SVNParentPath /var/www/svn/repos

# Limit write permission to list of valid users.
# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth-conf
Require valid-user

Since I'm using Virtual Private Server (VPS) and suPHP, I have the code below. Take note that the location is inside the VirtualHost directive.

<VirtualHost *:80>
DocumentRoot /var/www/
ServerAlias *
suPHP_Engine on
suPHP_UserGroup myuser myuser
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php
ErrorLog logs/
LogFormat "%h %l %u %t "%r" %>s %b" common
CustomLog logs/ common
<Location /repos>
DAV svn
SVNParentPath /var/www/ SetHandler repos

AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth-conf
Require valid-user


Step 5: Set the Password for your Users

[root@vps ~]# htpasswd -cm /etc/svn-auth-conf yourusername
New password:
Re-type new password:
Adding password for user yourusername
[root@vps ~]# htpasswd -m /etc/svn-auth-conf anotherusername
New password:
Re-type new password:
Adding password for user anotherusername

Step 6: Create Your Repository

[root@vps ~]# cd /var/www/ -- Or wherever you placed your path above
[root@vps ~]# mkdir svn
[root@vps ~]# cd svn
[root@vps ~]# svnadmin create repos
[root@vps ~]# chown -R apache:apache repos
[root@vps ~]# service httpd restart

Source :