Change in SCM

A while back I wrote about my development setup, a part of which is of course Source Code Management (SCM).

At that time I was using Perforce, which I was more than happy with, it sure is a great system, fast, efficient and very stable. I had no real problems with it at that time.

However, at the beginning of the year I moved to Subversion.

There are two main reasons for this:

1) Just like Cade I felt the cost of buying a license prohibitive.

If I should need to step up from the free 2 users/workspaces version I would need to outlay $800, which is way out of my league just now. And because I’ve been hopping between my Desktop and Laptop I’ve been very aware that I don’t have any slack there, I couldn’t for example do a secondary checkout of a back version without dropping one of my users or over-writing my current workspace. The 2 workspaces/users limit is too strict when you want to do anything except straight-line development (a second computer is at least a second workspace, even if copied from the first computer).

Subversion is free.

2) I want to be able to submit versions while on the road (i.e. at REAL World 2006) or from either my desktop or laptop.

This means I need to run my SCM on my laptop, as I can’t be sure I’m going to have a solid connection to a remote server while on the road.

I also use “Portable Home Directories” to sync my home directories between my desktop and laptop, this means I might be half-way through some development when I sync between the two and then carry on development on the second computer. With Perforce this is impossible to do, as Perforce recognizes different computers as being different workspaces (or users, never quite worked it out), and gets in a bit of a tizzy when you try and check in stuff from a different computer than which you checked it out on.

For Subversion I’ve downloaded Martin Ott’s (co-founder of TheCodingMonkeys) compiled version 1.3.0 which includes the more stable fsfs rather than bdb back-end.

I’m now running svnserve locally on my computers as me, with the repository sitting in my home directory. This means I can check in any time I like on either machine as Subversion doesn’t lock on check-out by default. And because of the sync going via my server I have a backup there (onto an external hard-disk), along with scheduled backups to my .Mac iDisk and another networked external hard-disk. This means my repository is sitting in at least 5 separate places (not counting backups to CD/DVD)!

All in all I’m much happier now that I have Subversion, it’s moved on a lot since I last looked at it, it seems very stable and I’m finding it a lot quicker to use now that I’m back to the command line too. I did enjoy using a GUI with Perforce, and I’ve looked at some of the offerings available for Subversion, but in the end I’ve found the command line more than adequate.

No comments.

  1. Not much help if you’re on a Mac, but TortoiseSVN is a great SVN client for the PC.

  2. I’ve never used TortoiseSVN but I used to use TortoiseCVS, which was great.

    Since moving to the Mac I’ve always toyed with the idea of creating a Finder plugin for the Mac similar to the Tortoise* Windows Explorer plugins, but frankly I just don’t have the time or skills to accomplish it. I wish I did, I’d love such a thing.

    If anyone knows of a Finder (or PathFinder) plugin that works like TortoiseSVN I’d love to know about it.

  3. Try iSVN – http://www.einhugur.com/iSvn/index.html

    Not quite a fully featured as TortoiseCVS, but not bad.

    Regards

    Stuart
    OTAG Technologies Ltd

  4. Hi Ian,
    Here’s another SVN client – http://www.lachoseinteractive.net/en/community/subversion/

    Haven’t tried this one yet, but it looks promising.

    Regards

    Stuart
    OTAG Technologies Ltd

  5. Thanks for the tips Stuart.

    I’d forgotten about iSVN, I’ve downloaded it and will give it a spin when I’m at a suitable place in my development to try new toys.

    I was aware of SvnX but frankly the screen shots put me off as I couldn’t work out what was going on in them. But I’ve seen lots of comments in it’s favour recently so I’ve also downloaded SvnX, I’ll test it at the same time as iSVN to see if either is quicker than the command line.

    By the way, I’ve already tried SmartSVN (http://www.smartcvs.com/smartsvn/). It was OK, but I felt it was a little clunky and slow, but that may just be down to my own pre-conceptions of Java based software. I might have another go just to see how it stacks up against iSVN and SvnX, it certainly had a lot of features, even on the free version.