Subversion Revisited

A while back I wrote about moving to Subversion for revision control. To this point it has worked well for the little I have needed it. But as I begin ramping up my development efforts I find that I spend more time on my PowerBook than I previously have. This has introduced a new wrinkle into my development process.

I initially only setup the Subversion client tools which support local code repositories, but do not provide any mechanism for remote or networked repositories. So, I set off to remedy this problem.

After some effort tracking down the right order to do things, here are the steps that I took:

  1. Remove any existing installations of subversion client and server (svnserve)
  2. Download and install the subversion Mac OS X binaries from Martin Ott [SubEthaEdit]
  3. Add the subverion binaries to your unix command line path. I did this by adding the following to my .profile file in my home directory.

    export PATH=$PATH:/usr/local/bin
  4. Open the ports TCP:3690 UDP:3690 through the firewall properties. You’ll probably need to add a new service.
  5. Run the svnserve daemon
    svnserve -d --root=/Volumes/CodeVault/Subversion/
  6. Create a new Repository

    svnadmin create --fs-type fsfs //Volumes/CodeVault/Subversion/[repository name]
  7. Configure repository for remote access by following the steps outlined in the Built-in authentication and authorization section of the Subversion Docs.
  8. Import project into new repository

    svn import ./[project name] svn://localhost/[repostiory name] --message 'Initial repository layout'
  9. Verify repository locally

    svn list svn://localhost/[repository name]
  10. Verify access from remote machine

    svn list svn://[machine name]/[repository name]



, ,




2 responses to “Subversion Revisited”

  1. Blake Seely Avatar

    for multiple machine access, I found it much easier to just use the Apache integration. There are several places around the web to find out tutorials for this – my favorite is That way you can just browse your local server for the files.

  2. Jon Trainer Avatar

    Thanks, Blake. I checked out the article and it looks like it uses a similar approach as the one on O’Reilly’s Mac Dev Center.

    The reason I didn’t go with this approach really is two fold.

    One is there are a ton of things to install. This makes it harder and more complicated to keep the whole bit updated with security patches and updates.

    Secondly, as you noted yourself on your site, there are problems with XCode 2.1 and using Apache2 based repositories served on a port other than 80. Unfortunately, I use Apache 1.3 (the built in version) extensively for supporting my clients that I do freelance web development for. So I can’t run Apache2 on port 80 while Apache 1.3 is running.

    But you’re right. If you don’t need Apache 1.3 for your work, then this is certainly a good way to go. Infact, once Apple fixes the XCode 2.1 bug, I’ll probably switch to the Apache method.

    By the way, I liked your writeup on installing subversion. I originally tried installing all this via ports also, but the install didn’t seem to work correctly. They must have fixed the problems since then. I’ll have to try that method out again in the future.