Visual Studio: TFS or SVN?

You may have heard of the TFS MVP fiasco being talked about over the past couple of days. Aside from demonstrating how not to disagree with comments on your blog, it raised a favourite old question for .NET developers using Visual Studio: which is better — Team Foundation Server or Subversion?

Functionally, I find both TFS and SVN pretty much the same. They aren’t really, of course, but my everyday SCM needs are pretty simple, beyond branching, merging, and tagging/labelling — so it really just comes down to which one integrates into your IDE better.

At work, we use TFS 2008 for source control. I like the IDE integration with Visual Studio (well, most of it) — it’s seamless, and I really like the pending changes window for keeping track of what I’m working on.

At home, I use VisualSVN. The IDE integration with Visual Studio is almost as good as TFS, but extends out to Windows Explorer as well, courtesy of TortoiseSVN (which it uses under the hood). TortoiseSVN also has autocompletion for files and class names in the commit dialog which makes good check-in comments really easy.

So is TFS worth the license cost over VisualSVN? Maybe, if you use the work item tracking and MS Project integration. But based on my needs, I probably wouldn’t choose it.