Version control: Subversion and TortoiseSVN

At work I use MKS Source Integrity and, more recently Borland Starteam, for version control - or, software configuration management (SCM) if you prefer. In my opinion, version control is essential for sane software developement - even for personal projects. Granted, you don’t need all the bells and whistles of an enterprise level solution, but you need something.

For the past few years I have been using Microsoft Visual SourceSafe 6.0 for my personal software development projects. However, I have to say that the product has been very basic and Microsoft haven’t provided any significant updates for ages. Until now, that is. Part of the Visual Studio 2005 Beta is Visual SourceSafe 2005 Beta. A few weeks ago I installed it and and started using it. It features many improvements. To quote Microsoft:

Visual SourceSafe 2005 enhancements include:

  • Remote Web access over HTTP from Visual Studio.
  • Improved integration in Visual Studio.
  • Unicode and XML support.
  • LAN performance booster.
  • Improved support for regional time zones and languages.

They didn’t even mention one of my favourite and long awaited enhancements - the ability to plug in a 3rd party file comparison tool (the one it provided in version 6.0 was a joke!).

The new version looks good and is just what the doctor ordered for its target market: individual developers and small teams. However, as it happens, I experienced a show-stopper bug: after a while I could no longer check out my files. It is only a beta after all, and I’m sure it’ll be solid when it RTMs. ;-) But nevertheless, I was left sans version control.

The solution to my problem came in the form of an open source version control “product” called Subversion. Its developers tout it as “a compelling replacement for CVS”. And that it is. However, I am a bit of a GUI whore and without a Windows front-end it was practically useless to me.

Luckily, the same open source community develops TortoiseSVN: “a Subversion client, implemented as a Windows shell extension. The coolest Interface to (Sub)Version Control.” Not surprisingly, it is very similar to TortoiseCVS.

I rate Subversion/TortoiseSVN! There is no need to download Subversion - just download and install TortoiseSVN. There is a little more to the setup than just clicking “Next” a few times. Once it is installed you have to “create a repository” and make a decision about the repository’s folder hierarchy. But that’s about it. It is really easy to use; being integrated into the Windows shell is really handy.

Here is the root directory of makiwa.com WordPress project in Windows explorer (click to enlarge).

TortoiseSVN - Explorer details view

As you can see, the file icons have little image overlays to convey the current state of the file. A green tick overlay means the file is checked out. A red exclamation one means the file has uncommitted changes. You also get new Subversion-specific columns, which are really useful (although you need to explicitly add them by right-clicking on the column headers and choosing “More…”).

The context menu (or main File menu) provides access to all the functionality (click to enlarge)…

TortoiseSVN context menu

There is obviously loads more to this product - I have barely scratched the surface. The documentation is good. In fact there is a free e-book “Version control with Subversion“.

If you’re not already using version control, I urge you to download TortoiseSVN and give it just an hour of your time. It’ll pay big dividends.

Leave a Reply