Friday, October 30, 2015

Subversion vs Team Foundation Server

I recently started working on a project that was using Subversion as its source control repository, therefore, I thought it fitting to discuss the differences between these 2 source control platforms.

In the past, I had used Subversion as my source control system for my own development since it was freely available as a hosted platform.

Since I could use Visual Studio to integrate with Subversion using either Visual SVN or AnkhSVN, it seemed like a suitable choice.

However, a few years later, Microsoft came out with Visual Studio Online ALSO as a free hosted platform for up to 5 users!

As soon as that was released, I immediately switched my source control over to Team Foundation Server/Visual Studio Online.

Why?

For numerous reasons:

  1. Overall, as an overall platform TFS is much, much more robust and integrates far better with Visual Studio than Subversion.  The entire experience of using TFS with Visual Studio is completely seamless. 
  2. A check-in into TFS is significantly faster than a similar check-in into Subversion.
  3. Similarly TFS check-outs are also significantly faster than Subversion check-out operations.
  4. In the past, TFS did not support integration with Windows Explorer as was provided with TortoiseSVN, but recent releases of TFS since TFS 2012/2013 have rectified this issue.
  5. Since TFS is commercially maintained and updated, it is refreshed with newer features and functionality than Subversion over the time span.  In the last few years that I have been using TFS, TFS has evolved significantly and is continually responding to user feedback to enhance its platform both on the server as well as on the client.  During that same timespan, Subversion has made insignificant changes in features and functionality from the end-user perspective (Developer checking in content to Subversion).
  6. TFS provides excellent branching/merging capabilities that completely outshines the branching and merging functionality provided by Subversion.  The merge comparison and merge conflict resolution capabilities available with TFS make use branching and merging with TFS a snap.
  7. TFS provides an overall ALM solution by providing both source control as well as work item tracking.  Subversion, by itself, is simply a source control system.  If you wish to use a work item tracking or issue tracking system, you either have to use something like JIRA or find a hosted Subversion provider which also provides work item tracking features.
  8. TFS provides a built-in code review solution, however, Subversion has  no such feature built-in thereby requiring you to purchase your own code review solution.  If you investigate a Code Review tool such as Upsource for your team, this quickly becomes very expensive: https://www.jetbrains.com/upsource/
  9. If you are hosting your own instance of Subversion using a tool such as VisualSVN Server vs. hosting your own instance of TFS, you will find that the web user experience of TFS completely blows away the web user experience of Subversion.  
Therefore, are there really any remaining compelling reasons to choose Subversion?  Basically, it comes down to price.  If you are a very large company/corporation that needs to host a source control repository without paying any money for it, then Subversion is a suitable choice.  However, it comes at the cost of losing a lot of features and functionality that is provided by a robust source control system such as TFS.

Considering that Visual Studio Online Pricing is extremely affordable now (https://www.visualstudio.com/en-us/products/visual-studio-online-pricing-vs.aspx), unless the company has absolutely no budget to invest in an excellent source control system, TFS should be the logical choice for every organization compared to using Subversion.

No comments:

Post a Comment