Software development, photography, jokes, ....


Sites by me

tas-logoTransportation Administration System
snoezelkussen-logo-kleinstSnoezelen Pillows for Dementia
ikzoekeenbegeleider-logoBegeleiders voor gehandicapten
Laat uw hond het jaarlijkse vuurwerk overwinnen
Betuweroute en Kunst
logo 50x50Hey Vos! Je eigen emailadres?
Kunst in huis? Nicole Karrèr maakt echt bijzonder mooie dingen
nettylogo2Kunst in huis? Netty Franssen maakt ook bijzonder mooie dingen

Hosting Favorites

ANU Internet Services
XEL Media


Google Translate
jQuery UI
YourHead Stacks API
Favicon Generator.
Password Generator.
Check HTTPS problems

Marc's Place


 Install Subversion

  Set up an Xserve from scratch part V

Subversion a really cool tool for file versioning. When put to use in a consequent way, it's a great tool for collaborative software development.

Buy me a coffee-1

1.  Startand initiate a session with your Xserve and log in as an administrator, but not as root.

2.  Download a Mac OS X installer package for Subversion. You find one at WanDisco or at Apache Subversion. Also download the StartupItem for the Subversion server svnserve and the book Version Control with Subversion.

3.  Double click the installers and install both items. Accept the defaults.

The other way to start subversion automatically via launchctl (Mac OS X) is described here: Relocate SVN Repos with SmartSVN

4a.  Install SVN on Mac OS X

The Subversion (up to 1.5.*) installer installs everything in /usr/local/bin :

The 1.6 installer installs SVN in /opt/subversion/bin/ and links to these files in /usr/local/bin :
$ ls -l /usr/bin/svn*
lrwxr-xr-x 1 root wheel 23 17 apr 13:38 /usr/bin/svn -> /opt/subversion/bin/svn
lrwxr-xr-x 1 root wheel 28 17 apr 13:38 /usr/bin/svnadmin -> /opt/subversion/bin/svnadmin
lrwxr-xr-x 1 root wheel 33 17 apr 13:38 /usr/bin/svndumpfilter -> /opt/subversion/bin/svndumpfilter
lrwxr-xr-x 1 root wheel 27 17 apr 13:38 /usr/bin/svnlook -> /opt/subversion/bin/svnlook
lrwxr-xr-x 1 root wheel 28 17 apr 13:38 /usr/bin/svnserve -> /opt/subversion/bin/svnserve
lrwxr-xr-x 1 root wheel 27 17 apr 13:38 /usr/bin/svnsync -> /opt/subversion/bin/svnsync
lrwxr-xr-x 1 root wheel 30 17 apr 13:38 /usr/bin/svnversion -> /opt/subversion/bin/svnversion

If these links are not there, you can easily create them like so:
sudo ln -s /opt/subversion/bin/svn /usr/bin/svn
sudo ln -s /opt/subversion/bin/svnadmin /usr/bin/svnadmin
sudo ln -s /opt/subversion/bin/svndumpfilter /usr/bin/svndumpfilter
sudo ln -s /opt/subversion/bin/svnlook /usr/bin/svnlook
sudo ln -s /opt/subversion/bin/svnserve /usr/bin/svnserve
sudo ln -s /opt/subversion/bin/svnsync /usr/bin/svnsync
sudo ln -s /opt/subversion/bin/svnversion /usr/bin/svnversion

The above does probably not work anymore with Mac OS X El Capitan.

4b.  Install SVN on Linux

On Linux, SVN is installed in /usr/bin/

Step 1: Setup Yum Repository

Firstly we need to configure yum repository in our system.
Create a new repo file /etc/yum.repos.d/wandisco-svn.repo and add following content as per your operating system version.

For CentOS/RHEL 6 Users:

name=Wandisco SVN Repo

For CentOS/RHEL 5 Users:

name=Wandisco SVN Repo

Step 2: Install Subversion Package

After adding above repository, install the Subversion package using yum command line package manager utility.

$ yum clean all
$ yum install subversion

or try:

$ yum update subversion

In case you face any issues with existing installed subversion, remove that (yum erase subversion) and try again with above commands.

Step 3: Verify Subversion Version

At this stage you have successfully install Subversion client on your system. Lets use following command to verify version of svn client.

$ svn --version

svn, version 1.8.9 (r1591380)
compiled May 1 2014, 14:46:40 on i686-pc-linux-gnu

Copyright (C) 2014 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see

Step 3: Start svnserve

Create a folder for your repositories:

$ mkdir /var/svn

For Linux (CentOS in my case) you can simple add the following statement to the file /etc/rc.local:

$ echo "svnserve -d -r /var/svn" >> /etc/rc.local

and start the server manually:

$ svnserve -d -r /var/svn

Go to step 6 to see how to create a repository or read Relocate SVN Repos with SmartSVN on how to move repositories.

4c.  Continue with Mac OS X

If SVN does not show up when you do $ which svnserve, your PATH environment variable does not contain /user/local/bin. You can add this permanently for all users by doing the following:

$ cd /etc
$ sudo vi csh.login

Add :/usr/local/bin to the end of the setenv line. I my case it now looks like this:

setenv PATH "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"

This change was for the csh-shell. Now for the bash-shell:

$ sudo vi profile (not .profile!)

Add :/usr/local/bin to the end of the PATH line. I my case it now looks like this:


After this, type CTRL-D or close the Terminal window to logout. Create a new shell and type:

$ svn

You should now get the message Type 'svn help' for usage. If not check your PATH variable by typing $ echo $PATH and check if it contains /usr/local/bin.

5.  The Subversion StartupItem installer installs everything in /library/startupitems/ :

$ ls -l /library/startupitems | grep vers
drwxr-xr-x 4 root wheel 136 Sep 27 10:54 Subversion

$ ls -l /library/startupitems/subversion
-rw-rw-r--   1 root  wheel  467 Sep 26 18:21 startupparameters.plist
-rwxrwxr-x   1 root  wheel  220 Sep 27 10:54 subversion

The StartupItem starts the Subversion server as a standalone deamon. I prefer this, because it is the fastest way to get Subversion up and running.

For Linux installation, see Relocate Repositories with SmartSVN.

6.  On this server, I have decided to create a root repository folder, named svn, under the /users/ folder because folders under /users/ are always preserved when you need to reinstall the OS for whatever reason :

$ cd /users
$ mkdir svn

Next, I created a repository to hold all my site files :

$ svnadmin create /users/svn/mysite
$ ls -l /users/svn/mysite
-rw-r--r--    1 myself  admin  229 Sep 26 18:57 README.txt
drwxr-xr-x    5 myself  admin  170 Sep 27 11:02 conf
drwxr-xr-x    2 myself  admin   68 Sep 26 18:57 dav
drwxr-sr-x   10 myself  admin  340 Sep 26 18:57 db
-r--r--r--    1 myself  admin    2 Sep 26 18:57 format
drwxr-xr-x   11 myself  admin  374 Sep 26 18:57 hooks
drwxr-xr-x    4 myself  admin  136 Sep 26 18:57 locks

7.  Since our server is a private server, we don't want anonymous users to have access and we want to grant access to a few programmers. Here's how to that. You must do this for every repository you create :

$ cd /users/svn/mysite/conf
$ ls -l
-rw-r--r--   1 myself  admin   684 Sep 26 18:57 authz
-rw-r--r--   1 myself  admin   309 Sep 26 18:57 passwd
-rw-r--r--   1 myself  admin  1451 Sep 27 11:02 svnserve.conf

Edit the svnserve.conf file and change (make sure you remove the comment (#) character) :
  • anon-access into anon-access = none
  • password-db into password-db = passwd
  • realm into something like realm = MYSITE Repository
  • There is at least one SVN-client out there that only accepts the realm as the name for the Repository.
Edit the passwd file and add users as user = password (remove the #-character).

8.  Before I can start the server, I need to change the StartupItem and add the repository root to the server's start command. That way, nobody has to type the full path to the repository. All paths are from then on relative to the repository root folder :

$ cd /library/startupitems/subversion
$ sudo vi subversion

Add -r /users/svn after the -d option so that it looks like this :

StartService ()
   /usr/local/bin/svnserve -d -r /Users/svn

9.  Now start the server by copying the above line and paste it at the Terminal prompt:

$ /usr/local/bin/svnserve -d -r /Users/svn

10.  Now, go for a nice client. You find a complete list at Wikipedia or find out more about SVN at WhoIsHostingThis.

11.  If you need to move repositories from one server to another, read: Relocate SVN Repos with SmartSVN

That's it. Server up and running.

buy me something-2

© 1997- Marc Vos (and others)   -   Privacy Statement   -    Contact Me

On this website, Google Analytics is used to track visitor statistics. These are anonymised data about the number of visitors, which pages they visit on this site, from which regions they visit, which web browsers they use, etc.. You will also see non-personalised ads via Google AdSense. Cookies from Paddle or Paypal are placed when you click on a 'Buy now!' or 'Donate!' button, and possible cookies from Disqus when you use that system to comment on one or more blogposts.
Privacy Statement