Compdigitec Labs

« | Home | »

Setting up a Subversion server using Apache on Ubuntu

By admin | August 9, 2010

Subversion is an excellent open-source solution for keeping track of the different versions while developing software. Here, we will see how to set up a subversion server on an Ubuntu 10.04 LTS Server to provide programmers with the ability to use Subversion.

Prerequisities

Apache 2 should have already been installed and configured with SSL - if not, see the Ubuntu Server Guide for more details. Install the packages subversion and libapache2-svn:

sudo apt-get install subversion libapache2-svn

Setting up

  1. Create a home for the Subversion files:
    sudo mkdir -p /var/svn
  2. Open up /etc/apache2/mods-available/dav_svn.conf in your favourite text editor of choice, and add the following text at the bottom (ignore anything already there):
    <Location /svn>
         DAV svn
         SVNParentPath /var/svn
         SVNListParentPath On
         AuthType Basic
         AuthName "Subversion Repository"
         AuthUserFile /etc/subversion/passwd
         <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require valid-user
         </LimitExcept>
      </Location>
  3. Add a user to the Subversion - if you don’t, you may end up with strange errors like “svn: Server sent unexpected return value (500 Internal Server Error) in response to MKACTIVITY request” when trying to commit.
    sudo htpasswd -c /etc/subversion/passwd admin

    It will prompt for a password - just give it something.

  4. You’re good to go - although without any projects the server won’t have anything to commit to. Add a project to the server:
    sudo mkdir -p /var/svn/project
    sudo svnadmin create /var/svn/project

Results/Errors

svn commit -m nomsg test1 test2  --username=root --password=top_secret_root_password_here
svn: Commit failed (details follow):
svn: Server sent unexpected return value (500 Internal Server Error) in response
 to MKACTIVITY request for '/svn/project/!svn/act/53aca034-c64b-5b41-8bf4-
2715d91af049'

This error is because you do not have a valid login passed to the server, although it could use a much, much more descriptive message than “Internal Server Error”. Remember the login is not the Unix login, but instead the login created with htpassed.

svn commit -m nomsg test01 test02 --user
name=admin  --password=password_createdby_htpasswd_here
Adding         test01
Adding         test02

Committed revision 1.

If you found this article helpful or interesting, please help Compdigitec spread the word. Don’t forget to subscribe to Compdigitec Labs for more useful and interesting articles!

Topics: HTTP (Internet), Linux | 2 Comments »

2 Responses to “Setting up a Subversion server using Apache on Ubuntu”

  1. no body Says:
    November 25th, 2010 at 3:57 am

    is its posible to view the source browser?
    like http://localhost/svn:8433

  2. Jordan Says:
    May 20th, 2011 at 11:57 am

    This may seem obvious, but somehow I overlooked it during the setup of the repo. If you’re creating that /etc/svn/passwd file for the first time as root, then you need to alter the ownership as well:

    chown -R www-data:subversion /etc/svn

    If you do not, then you get the same 500 error as described above since the web server cannot authenticate the user.

    I hope this helps others as well.

Comments