martes, 19 de agosto de 2014

Installing subversion in ubuntu machines

I've install it many times but I'll have to install it many times more in the future, so I'll write down how I do it here:

I use subversion this way:

1- I've create with subversion a repository in a folder that is shared in Dropbox.
2- I configure apache servers with svn in each computer I own.

So I can use the same repository in different machines without use a remote server.

I'll write how to install it in my machines (the creation of the repository is straighforward).

First of all, You must install apache2, subversion and apache2-svn-mod and apache2-utils. In ubuntu via:

sudo apt-get install subversion subversion-tools apache2
libapache2-svn apache2-utils

These are; the server which will serve us the repository from our local machine, the subversion repository (the executable that manages it), subversion to apache mod and password manager for apache


Lets start configuring it by creating a group for subversion:

sudo groupadd subversion

And adding our user(s) to that group

sudo usermod -a -Gsubversion inigo

Now we'll generate the password(s) for the repository (as you see the password, the validation will be LOCAL, so passwords could be different in different machines(!))

sudo htpasswd -c /etc/apache2/dav_svn.passwd inigo

sudo htpasswd /etc/apache2/dav_svn.passwd ANOTHER_USER

The -c stands for 'create file'. To add more users you must omit or it will reset the password's file.

Now we can use the repository in the folder shared in dropbox, to do it we must give permisions to our group and to apache:


sudo chown -R www-data:subversion /home/inigo/svn/
sudo chmod -R 770 /home/inigo/svn/
 Also note that ALL the directories in the path of our repository MUST have execution permises for apache user in order to serve the repository:

      sudo chmod +x /home/inigo/svn
      sudo chmod +x /home/inigo

P.e: if the repository is in /home/inigo/svn/repos must do a chmod +x to each subdirectory. So apache can navigate to the served folder.

And now configure apache editing its configuration file:

sudo vim /etc/apache2/mods-available/dav_svn.conf

And changing it contents uncommenting the lines:


DAV svn
SVNPath /home/svn
AuthType Basic
AuthName "Repositorio Subversion del proyecto"
AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user


After this restart apache and done:
sudo service apache2 restart

That's all.

Try navegating to http://localhost/svn and it should be here :)

No hay comentarios: