SVN vs TFS vs Git
Despite the real world benefit like being able to review and rollback, I believe being able to grow and evolve with your code is one the reasons why version control is such an essential part in software development. What have we got across the board? In the beginning, there is Subversion. I've been using a couple of SVN tools to manage my code at work or for fun for years, which are T ortoiseSVN , SmartSVN and VirtualSVN . (ref: How to Set Up a Source Control ) Subversion tools use tree structure to represent the trunk and branches of your code, which is easy to understand and use when committing, branching, tagging and etc. But there are problems with svn tools too. In svn, it is exceptionally expensive to branch and merge. Branching always loads with a complete copy of the code base on server, and being able to branch locally does not exist. And you would never feel bored when m erging more than a dozen file...