Search code examples
gitversion-controlalmtfs-2015tfvc

Should we use Git or TFVC on a TFS 2015


My company is in the midst of implementing TFS 2015 for ALM, version control, etc. I've used both Git and TFVC (as well as Mercurial, SVN, and Source Safe). I get the impression that we (the developers) would be better served by using Git but I'm not sure. So my question is this: Are there compelling reasons for a company to choose TFVC instead of Git when using TFS 2015? https://sway.com/ilvSzkZW5LTORgXj

I wasn't trying to start a discussion on Centralized vs. Distributed version control, or TFVC vs. Git. I'm interested in finding out if TFS 2015 supports both (TFVC and Git) the same. In other words: will we be missing something if we decide to go with one or the other. I know that this was the case in previous versions of TFS but it appears that in this new version of TFS (2015) both version control systems are pretty much at parity. My company is going to implement version control in TFS 2015 instance. If TFS 2015 treats both version control systems the same then going with one or the other is only a matter of preference. If TFS 2015 does not treat both version control systems the same then the decision would probably be made for the version control system that better integrates with the TFS instance. Apparently I posted my question on the wrong StackExchange forum. My question has now been asked in the Software Recommendations site.

Willy-Peter Schaub (Visual Studio ALM Ranger) directed me to the following document: http://vsarbranchingguide.codeplex.com/downloads/get/1439279 Where I was able to get the following bullet points:

Scalability, location, experience and policies are some of the common factors you need to consider when planning your repository. For example:

  • If your team is experienced with centralized version control systems, TFVC might avoid adoption and training costs. Similarly if your team is experienced with distributed version control systems, Git might be better.
  • If you need to scale to a very large repository you may want to consider TFVC.
  • TFVC currently has better support for fine grain permissions and policies in TFS 2013.
  • Git might be better for geographically distributed teams, especially combined with poor connectivity.
  • For teams doing cross-platform development, there may be more 3rd party-support for Git-based repositories. For example, if you are using XCode, support for Git is built in.

Also the following differences:

TFVC

  • Switching between branch folders is quick and simple.
  • Branches are a “copy”.
  • Branches are “cheap”, but mapping multiple branches to your local machine is “costly”.

Git

  • Switching between branches is quick and simple.
  • Branches are “pointers”.
  • Storage is “cheap” as no version control data is duplicated.

Solution

  • The only compelling reason to move to TFVC instead of git is the account of effort to move your platform and your developers.

    Git is a significant training issue if you have hundreds of Developers.

    If your code was in a server based source control system then it might be in a state, with kids off binaries, that makes it difficult to move to git.

    Train your Devs, remove binaries, and you are good to go for git.