Search code examples
gitversion-controltfsgit-tfs

Reasons to use full-blown git rather than tfs via git-tfs


To me it seems completely obvious to use pure git, but I am in the position of having to articulate why using pure git is a superior solution to using TFS via git-tfs.

The company I work for has a "policy" of using TFS, although the developers in my team have successfully lobbied to use a git-tfs bridge.

I would like to advocate that instead of using git-tfs (which I know very little about), the development team use pure git against a git repo hosted on the network. A scheduled task on the server hosting the git repository would then periodically pull the contents of the master branch into a TFS repository to appease the corporate TFS gods.

Can anyone help me articulate my argument?


Solution

  • In my opinion, the main advantage to actually using a git repo hosted on the network is that you'll have a common place to push branches to and request pulls from.

    I'm a huge fan of the GitHub Flow (The workflow that the GitHub employees use). Basically, every feature/bug should have its own branch. You sync that branch with the remote repository, run tests on it, and then do a git request-pull to create a pull request that you send to a team member. The team member reviews the change, approves it, and it goes live.

    Having a remote git repository makes it really nice if you use branches a lot. It gives you a place to share your changes before merging them in with the main branch.

    I used git-tfs for a while and stopped because my TFS workspaces got all messed up. It was probably correctable, but I didn't take the time to figure it out. I imagine that my issue isn't the only one that you may run into, but I don't know.