Skip to main content

Fun With Subversion and Trac

In anticipation of our impending move off of Visual Source Safe (finally!) I decided to get my SCM of choice, Subversion, up and running on my Linux box (Fedora Core 4) at home. I've used SVN on Windows quite a bit, and have also used an excellent, excellent hosted SVN account at, but since I may well be the one who winds up administering SVN at work, I thought it was high time to dig a bit deeper.

I also have just started using Trac over at and decided to install that locally as well. (If you haven't checked it out yet, Trac is seriously cool stuff, and I've barely scratched the surface thus far.) As with all things Linux there's a bit of manual configuration involved, but in general the process of getting SVN and Trac installed was as simple as typin

yum install trac

in a term window. It downloaded all the necessary dependent packages (including SVN itself) and installed them automatically.

So at this point I have Trac and SVN "installed," but that doesn't really mean much. Trac has some great documentation to get you going, however, and the only thing I needed to do in addition to what they outline is chmod on my svn database file and directory in order to let Trac hit it. After that Trac was up and running!

Never one to leave well enough alone, I decided I wanted to tie SVN into Apache using mod_dav_svn. Again this was pretty typical Linux stuff:

yum install mod_dav_svn

to get the files down and then some minor tweaks to the httpd.conf file. I then bounced Apache and was off to the races. There's some nice documentation about SVN + Apache that will walk you through it.

Next step for me is to get some user access settings in place, but so far not a bad installation process at all. If you're on Windows and just want SVN, the one-click installer (link above) is definitely the way to go. It gives you everything you need to run SVN through svnserve and even installs svnserve as a Windows service for you. I haven't attempted a Trac installation on Windows because quite honestly the Linux install seemed a lot simpler, but there are instructions for installing Trac on Windows over at the Trac web site.

I'm sure I'll have more to say about this as I dig into it further, but as I've said before, I just can't work without good source code control anymore. Even for a relatively small side project I just started on which I'm the only developer, the first thing I did was get an SVN repo going for it. If you haven't used SCM before or have only used bad SCM like VSS, I strongly recommend giving SVN a shot. Get CFEclipse, the Subclipse plugin (although be wary of versions ...), and give this stuff a whirl. It's a better, safer way to develop and opens up all sorts of flexibility with managing your code that you just can't get any other way.

For further info, I recommend Version Control with Subversion and Pragmatic Version Control Using Subversion. Both are extremely helpful from a conceptual as well as a technical perspective.


We're also going to be moving away from VSS. However, the big stumbling block has been the requirement that we need to preserve all comments from VSS to SVN. I found a python script to do it, but the feedback on it has been mixed at best. How are you approaching that problem, if at all?

We're not. :-) I've been using the Eclipse plugin for VSS for quite a while and it doesn't let you enter comments anyway (unless I'm just totally missing that option), and we decided that for us it just isn't worth the hassle. We'll probably leave our VSS stuff sitting around for quite a while for historical purposes but I seriously doubt we'd ever need to refer back to it.

That's where we're at in our development cycle though--we're at a pretty amazing point of synchronicity in terms of revisions between all our apps so it's pretty much the ideal time to do it. I suppose if you *have* to retain your comments I'll wish you luck and be very curious to hear how you fare!

Hey Matt, I'm about to set up a similar system at my new job, it looks like we will also be making the choice for svn simply based on the support of tracs. I have grown used to a super sweet Jira/Confluence/cvs solution thanks to free open source licenses, but it a pretty expensive solution for the new biz. So the question, is tracs available from the standard fedora repos (or extras) or did you get it from elsewhere, maybe atrpms? Being able to yum install / upgrade kind of makes the tracs/svn solution even that much more appealing.

we are moving to eclipse and want to abandon vss. there are two versions of subversion -- subclipse and subversive. is one better than the other? thanks.

I've never used subversive. Subclipse has always worked great for me.

If you're on a Mac and have been envious of TortoiseSVN on Windows, check this out:

For Windows folks, alternative to Subversion with Trac would be

Subversion with BugTracker.NET, free and open source (I'm the author). You include the bug # when you check in and then when you look at the bug, you can see your Subversion revisions, do diffs, etc. More info at

Hi Matt,

I've written a walk through guide to installing Trac on Windows without Apache on my own site.

Your readers might find it of some use.


Popular posts from this blog

Installing and Configuring NextPVR as a Replacement for Windows Media Center

If you follow me on Google+ you'll know I had a recent rant about Windows Media Center, which after running fine for about a year suddenly decided as of January 29 it was done downloading the program guide and by extension was therefore done recording any TV shows.

I'll spare you more ranting and simply say that none of the suggestions I got (which I appreciate!) worked, and rather than spending more time figuring out why, I decided to try something different.

NextPVR is an awesome free (as in beer, not as in freedom unfortunately ...) PVR application for Windows that with a little bit of tweaking handily replaced Windows Media Center. It can even download guide data, which is apparently something WMC no longer feels like doing.

Background I wound up going down this road in a rather circuitous way. My initial goal for the weekend project was to get Raspbmc running on one of my Raspberry Pis. The latest version of XBMC has PVR functionality so I was anxious to try that out as a …

Setting Up Django On a Raspberry Pi

This past weekend I finally got a chance to set up one of my two Raspberry Pis to use as a Django server so I thought I'd share the steps I went through both to save someone else attempting to do this some time as well as get any feedback in case there are different/better ways to do any of this.

I'm running this from my house (URL forthcoming once I get the real Django app finalized and put on the Raspberry Pi) using I don't cover that aspect of things in this post but I'm happy to write that up as well if people are interested.

General Comments and Assumptions

Using latest Raspbian “wheezy” distro as of 1/19/2013 (’lll be using Nginx ( as the web server/proxy and Gunicorn ( as the WSGI serverI used heavily as I was creating this, so many thanks to the author of that tutorial. If you’re looking for more details on …

The Definitive Guide to CouchDB Authentication and Security

With a bold title like that I suppose I should clarify a bit. I finally got frustrated enough with all the disparate and seemingly incomplete information on this topic to want to gather everything I know about this topic into a single place, both so I have it for my own reference but also in the hopes that it will help others.Since CouchDB is just an HTTP resource and can be secured at that level along the same lines as you'd secure any HTTP resource, I should also point out that I will not be covering things like putting a proxy in front of CouchDB, using SSL with CouchDB, or anything along those lines. This post is strictly limited to how authentication and security work within CouchDB itself.CouchDB security is powerful and granular but frankly it's also a bit quirky and counterintuitive. What I'm outlining here is my understanding of all of this after taking several runs at it, reading everything I could find on the Internet (yes, the whole Internet!), and a great deal…