Docs
- Subversion Book
- Subversion Vendor Branchs
- Date Formats
- Java SVN
(also has interesting license)
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:
- Create empty directory using svn mkdir --parents command (on Cygwin since --parents requires svn 1.5)
- Checkout empty directory
- 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