April 5, 2009

SVN rocks (XP-Dev too)!

I have been working on HelloWorld project (on Windows Azure Platform) from quite a while.. When I started development of this project, it was more for personal usage and mostly for study/learning purposes. It started with just two words ‘hello world!’ and one aspx page, but then software evolves and gets more and more complex… HelloWorld’s got thousands of lines of code now with a whole bunch of pages. Some of the examples of what it’s done can be found here, here and here.

One thing I needed badly was source control system, to manage the complex source code. In the past, I have used CVS and Visual Source Safe at various occasions. I had also tried SVN source control system but not for real projects.. just for testing purposes. Initially I thought of setting up local CVS server and maintain source code up there. But it was limited to only one machine… If I wanted to do a quick bug fix sitting on office machine, I could not do that without merging, and it would’ve been difficult to keep latest!

This time, for this project (and few others I am working on – which i will write about some other day) I needed a special Source control system which I can use no matter which machine I am connected to.. which means, I needed an internet hosted source control system which is available 24x365.

I did some research and found few options.. I tried all of them and the best I have found is XP-Dev. It gives you 1 GB of whooping storage for storing your source code and provides all SVN features. I migrated all my locally stored projects to xp-dev and started using it. One of the dangers of internet hosted source control is security, so I had to take care about it. Anyways, using XP-Dev along with TortoiseSVN has been a great fun.

While looking at various features of TortoiseSVN and SVN system, I found Statistics dialog.. It draws nice graph from the revisions history and gives you peek at whats going on in the project! Nicely implemented!

It shows Following Commit Graph for HelloWorld project!

image

Stay tuned.. Wave