## 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

Committed revision 1.

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

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

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

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

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

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.

3. สล็อต โบนัส Says:
July 28th, 2021 at 18:13