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?
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.