Docs

Configuring Subversion on Mac OS X

Subversion comes pre-installed (another great reason to love developing on Macs).

  • mkdir /Volumes/Data/svn - decided to put repository on the Data volume (RAID) of my Mac Pro.
  • svnadmin create /Volumes/Data/svn/repos - create respository

Configuration: Edited in /Volumes/Data/svn/repos/conf:

  • svnserve.conf - uncommented password-db and authz-db lines.
  • passwd - created passwords for donohoe
  • authz - defined auth for all users in the repos:
[repos:/]
* = rw

Using this helpful post, created /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist. Note: both User and Group must match the owner of the svn repository, otherwise it hangs.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Debug</key>
    <false/>
    <key>Disabled</key>
    <false/>
    <key>GroupName</key>
    <string>admin</string>
    <key>Label</key>
    <string>org.tigris.subversion.svnserve</string>
    <key>OnDemand</key>
    <true/>
    <key>Program</key>
    <string>/usr/bin/svnserve</string>
    <key>ProgramArguments</key>
    <array>
        <string>svnserve</string>
        <string>--inetd</string>
        <string>--root=/Volumes/Data/svn</string>
    </array>
    <key>ServiceDescription</key>
    <string>SVN Code Version Management</string>
        <key>Sockets</key>
        <dict>
        <key>Listeners</key>
        <array>
                <dict>
                <key>SockFamily</key>
                <string>IPv4</string>
                <key>SockServiceName</key>
                <string>svn</string>
                <key>SockType</key>
                <string>stream</string>
                </dict>
                <dict>
                <key>SockFamily</key>
                <string>IPv6</string>
                <key>SockServiceName</key>
                <string>svn</string>
                <key>SockType</key>
                <string>stream</string>
                </dict>
        </array>
        </dict>
    <key>Umask</key>
    <integer>2</integer>
    <key>UserName</key>
    <string>donohoe</string>
    <key>inetdCompatibility</key>
    <dict>
        <key>Wait</key>
        <false/>
    </dict>
</dict>
</plist>
  • launchctl load /Library/LaunchDaemons/org.tigris.subversion.svnserve.plist - to load (use unload to unload incase you make a mistake)

To import my code:

  • Edited /etct/hosts and created entry for macpro
  • svn import dev svn://macpro/repos/trunk/dev -m "dev port to svn"

Installing Subversion on RHEL 2

I had to build Subversion 1.4.6 from source since there was no distribution for the older version of Linux I'm using. I downloaded these tar files:

  • subversion-1.4.6.tar
  • subversion-deps-1.4.6.tar

Installing and building was quite simple:

$ su -
Password: top-secret-password
$ cd /usr/local
$ tar xvf /download/subversion-deps-1.4.6.tar
$ tar xvf /download/subversion-1.4.6.tar 
$ cd subversion-1.4.6
$ ./configure
$ ./make
$ ./make install

Installing Subversion on Ubuntu

Ran apt-get install libapache2-svn

Useful Commands

  • svn propedit svn:ignore [dir] - to edit ignore list
  • svn propset svn:executable ON [file] - to make sure file is checked out with executable permissions.

Getting configuration files into Subversion

Basically you:

  1. Create empty directory using svn mkdir --parents command (on Cygwin since --parents requires svn 1.5)
  2. Checkout empty directory
  3. Add files and commit

Here is an example used to get JSPwiki configuration files into subversion:

$ svn mkdir --parents svn://macpro/repos/config/games/jspwiki/WEB-INF -m "JSP Wiki WEB-INF" (on Cygwin)
$ cd /usr/local/tomcat/webapps/wiki
$ svn co svn://macpro/repos/config/games/jspwiki/WEB-INF
$ cd WEB-INF
$ svn add jspwiki.policy jspwiki.properties
$ svn commit -m "initial checkin JSPWiki config files"

Installing mod_svn


$ apt-get install libapache2-svn
$ /etc/init.d/apache2 force-reload

Configuring mod_svn

Created games.conf in /etc/apache2/conf.d.

Created users for apache auth (note: use 'c' flag only on initial file creation) and used same default password as svnserve configuration.

$ htpasswd -cm /home/svn/svn-apache-users donohoe

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-23) was last changed on 27-Dec-2008 16:04 by donohoe [RSS]