Like most people with computer-related jobs, I work on numerous machines. At work, there’s the all-purpose server, the personal desktop machine, a second server for testing/backup and should I need it, a Linux cluster. At home there’s the desktop/server and laptop. In general, I use the work server as the “working machine”, with an NFS mount to the desktop and backups using rsync to the second work server and the home server. The laptop is, as much as possible, a dumb terminal for SSH to other places.
I imagine that I’m not alone in having a directory under my home directory named “projects/”, with a hierarchy of project directories below that and directories below them named “perl”, “fasta”, “gnuplot” and so on. This is all very well, until I’m sat at one or the other of the machines and decide to do some work. Pretty soon, confusion reigns as I try to recall in which direction I should rsync the altered files. What I really need is a master repository from which I make working copies that I can synchronise with the master from any location. In other words – revision control.
I’ve been using CVS for a few years just for code and found it to be very beneficial and quite easy to use, especially from within emacs. However, people kept telling me that Subversion (SVN), the CVS alternative, was far superior. Then I came across a project management system called Trac, which is used by the bioinformatics guys at the IMB on our campus and interfaces with SVN. So I thought – how about using SVN + Trac to handle all of my bioinformatics project files – not just the code?
It turns out that this is a great way to organise and maintain files and share them with other people. This post explains how I set up SVN + Trac; the next post looks at some ways to use them for bioinformatics projects.
Read the rest…