SVN is an open source version control system build by Apache Foundation Team. It helps you keep track of a collection of files and folders. Any time you change, add or delete a file or folder that you manage with Subversion, you commit these changes to your Subversion repository, which creates a new revision in your repository reflecting these changes. You can always go back, look at and get the contents of previous revisions.

Advertisement

This article will help you for step by step setup of Subversion (svn) server on Debian 11, Debian 10 and Debian 9 Linux systems.

Step 1 – Install Apache

We are using Apache web server to host SVN server. You need to install the Apache web server to access the svn server using HTTP URLs. Skip this step if you already have Apache web server on your system.

sudo apt-get update 
sudo apt-get install apache2 

Step 2 – Install SVN Server

Use the following command to install subversion packages and their dependencies. Also, install svn module for Apache libapache2-mod-svn packages on your system.

sudo apt-get install subversion libapache2-mod-svn libapache2-svn libsvn-dev 

After installation, enable required Apache modules and restart Apache service.

sudo a2enmod dav 
sudo a2enmod dav_svn 
sudo service apache2 restart 

Step 3 – Configure Apache with Subversion

Subversion Apache module package creates an configuration file /etc/apache2/mods-enabled/dav_svn.conf. You just need to make necessary changes to it.

Alias /svn /var/lib/svn
<Location /svn>

   DAV svn
   SVNParentPath /var/lib/svn

   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /etc/apache2/dav_svn.passwd
   Require valid-user
     
</Location>

Step 4 – Create SVN Repository

Use following commands to create your first svn repository with name myrepo. Also, set the required permissions on newly created directories.

sudo mkdir -p /var/lib/svn/ 
sudo svnadmin create /var/lib/svn/myrepo 

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

Step 5 – Create Users for Subversion

Now create first svn user in /etc/apache2/dav_svn.passwd file. These users will use for authentication of svn repositories for checkout, commit processes.

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

To create additional users, use following commands.

sudo htpasswd -m /etc/apache2/dav_svn.passwd user1 
sudo htpasswd -m /etc/apache2/dav_svn.passwd user2 

Step 6 – Access Repository in Browser

Use HTTP URLs to access your repository in the browser. It will prompt for authentication. Use login credentials created in Step 5. Change example.com with your system hostname, domain name or IP address.

 http://example.com/svn/myrepo/

Install Svn Server 1

Thank You for using this article. Read our next article How to Backup and Restore SVN Repository in Linux.

Share.

6 Comments

  1. Commenting out Alias /svn /var/lib/svn makes this work for tortoiseSVN as well. Wish I’d read this comment a couple days ago.

  2. Seosamh Ó Galúna on

    Thanks for the tutorial. However, I encountered a similar problem to Dario when using svn import and the solution was the same – to remove the Alias /svn /var/lib/svn in the dav_svn.conf file (using Debian 10).

  3. Hey man, i did everything in this tutorial but it seems that the server isnt ¨ON¨ because i cant access it on a browser

      • Hi, I get the message “This site can’t be reached” which I guess is bc the server is off or something. How do I know if Apache is running? Also did you do anything else besides de svn configuration, like a port configuration? And how can I create folders in the server? Thank you

Leave A Reply


Exit mobile version