Setting up Subversion Version control in Ubuntu

When developing a project, you may want to keep a version control of all your files so that you can easily revert to an earlier page (or the previous revision) to fix any bugs or in the event that someone accidentally deleted your files.

In Ubuntu, the easiest way to do version control is to set up a Subversion (SVN) server.

Next, we are going to create a directory to hold your repository.

Give apache the access right to the repository

Uncomment the codes by removing the ‘#’ in front of the following lines:

If you have only one repository for your SVN, uncomment the following line

Else if you are setting up multiple repositories, uncomment this line

Remember that at any time, only SVNPath or SVNParentPath is uncommented. Do not uncomment both at the same time.

Create a password for your username

Restart apache

Now open your browser and go to http://localhost/svn. If you see the following, the your installation is successful.


You have successfully installed and configured SVN, now we need to import our project files to the SVN.

Go to Applications->Programming->RapidSVN

In the RapidSVN, go to Repository->Import

In the window, enter the following:


Click OK. Enter your username and password. Your project should be in the SVN now.


  1. Thanks for the article! I noticed one quick change due to renaming of htpasswd2 in apache-utils- when configuring the password, the line should be updated from:

    sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd yourusername

    sudo htpasswd -cm /etc/apache2/dav_svn.passwd yourusername


  2. Hi i just want to setup subversion for the first time.I followed your howto but when i go to http://localhost/svn i get:
    You don’t have permission to access /svn on this server.
    Apache/2.2.11 (Ubuntu) DAV/2 SVN/1.5.4 Server at localhost Port 80
    Can i do something to fix it?

    • Did you set the correct permission for the svn folder:

      sudo chown -R www-data:www-data /var/lib/svn
      sudo chmod 770 -R /var/lib/svn

  3. Thanks for your reply.I created /home/pavlos/Documents/programming/code/svn as mine svn folder with the permissions below :
    $ sudo ls -lah /home/pavlos/Documents/programming/code/svn
    [sudo] password for pavlos:
    total 32K
    drwxrwx— 6 www-data www-data 4.0K 2009-08-17 22:01 .
    drwxrwxrwx 11 pavlos pavlos 4.0K 2009-08-23 22:37 ..
    drwxr-xr-x 2 root root 4.0K 2009-08-17 22:01 conf
    drwxr-sr-x 6 root root 4.0K 2009-08-17 22:06 db
    -r–r–r– 1 root root 2 2009-08-17 22:01 format
    drwxr-xr-x 2 root root 4.0K 2009-08-17 22:01 hooks
    drwxr-xr-x 2 root root 4.0K 2009-08-17 22:01 locks
    -rw-r–r– 1 root root 229 2009-08-17 22:01 README.txt

    The strange thing is that with SVNPath is working ok but with SVNParentPath no.

  4. Thanks – very useful. I found that, since I'd chosen SVNParentPath rather than SVNPath, I at first received the 'FORBIDDEN' message just like Pavlos. I had to create a repository on the command line:

    sudo svnadmin create /var/lib/svn/plone

    – and then the repository was visible in the browser here:


    – just in case it helps anyone

Comments are closed.

Sponsored Stories