Monday, October 23, 2006

Subversion on Windows

Source control has always been a bit problematic in the Microsoft world. Most of us have used Visual SourceSafe quite extensively and don't have to be convinced that it pretty much sucks rocks. The good news is that the souce control story has gotten better in recent years and months. The most notable event was the launch of Team Foundation Server, which comes with Team Source Control, a huge improvement in the Microsoft offering for source control.

However, TFS is not very ideal for single-man shops like myself (yes, I do some software side projects from time to time). It's ideal for teams (even small ones) where collaboration of source code with the software development process is important (this should be the case with any shop). It's also not very free. I'm a bit of a cheap skate, so all-free was definitely more appealing.

In the past I've played with CVS and liked it. It's been around for a long time and has a decent Windows implementation that installs an easy-to-manage Windows service. However, CVS has its well-known shortcomings. These shortcomings are the primary reason for the creation of Subversion (SVN), which is very CVS-like, but better in many ways.

The only down side to SVN, it seemed, was that it didn't have a very good Windows implementation. Specifically, the server install did not include a Windows service. You had to come up with some other way of keeping your SVN process (or daemon as they call it) running using a 3rd party Windows service wrapper or the like.

Well, digging further, I recently discovered that it's not too difficult to use SVN with Apache, which is an open source web server that has a very nice Windows implementation. Accessing SVN via Apache (i.e. HTTP) is ideal because it allows you to easily browse your repository, and it works great with TortoiseSVN (my preferred SVN client) which uses WebDAV to communicate with SVN via HTTP. In fact I found the best resource for setting all this up was in the TortoiseSVN documentation itself.

Very cool! Now, I'm a die-hard SVN fan.

No comments: