Sean Collins

sean [at] seanmcollins [dot] com

GPG Key ID: 0xf60f564978913931

sean [at] coreitpro [dot] com

GPG Key ID: 0xA1D7E590

profile for Sean at Stack Overflow, Q&A for professional and enthusiast programmers

Use Git, no matter what

Picking the wrong tool to store and manage code can be the most costly mistake a business can make. If you are a developer, or if you manage developers, pick tools that make life easier.

I worked for a company that had used Visual Source Safe - until VSS corrupted itself and lost all their data, a few months prior to my hiring. Even the replacement they moved to, a product called SourceAnywhere, was not any better. It just sucked up time and caused frustration.

Then I found Git

It started out guerrilla style, where I would use Git to do my work, and every now and then when I finished implementing a feature or fixing a bug, I would open up SourceAnywhere and check in the changes.

Git got out of my way, and allowed me to be far more productive, truly allowing me to drop whatever I was doing and make an important fix (using stashes and branches).

My boss realized how Git had improved my workflow, and made the decision to switch over to GitHub to host all our development. The ability to reference issues from commits, do code reviews with pull requests, and all the other awesome features of GitHub pushed developer productivity to new heights.

Leaving GitHub for TFS

I changed jobs in November of last year, to a company that used Mircrosoft’s VSS replacement, Team Foundation Server.

To put it bluntly, TFS is destroying your development capacity.

TFS is probably one of the worst tools I’ve ever seen, because it reaches down into a developers IDE and locks you out of files that another developer is working on. Want to make a small change to the <head> section of an aspx file? Too bad! Your buddy has it checked out.

To the TFS gurus: Yes, you can change the locking settings to stop this, but the merge tool is so bad that locking the file is preferable.

Thankfully, after some googling I discovered that there was another way. I could continue using Git, with Git-Tfs providing the link back to TFS.

Git-TFS makes TFS irrelevant

By using Git-Tfs, I sidestep all the headaches of TFS. No more files being set with the read-only flag! No more locked files! No more crappy merge tool! Make changes to the code while not connected to the TFS server!

Even though Microsoft claims to have fixed lots of bugs and improved the mergetool in the upcoming release of TFS, it’s still a centralized model, and a piece of software with an abysmal reputation.

Why wait for improvements, when the open source community is writing tools that will release you from the grip of TFS?

Summary

Derek Hammer puts it succinctly:

For developers, tooling can inspire almost religious dogmatism and fanaticism. This is understandable. We work with these tools for a significant portion of our lives. Choosing the right tool for the job can decrease stress, increase productivity and make legitimate impacts on us.

If you are part of a large company that uses TFS and are tired of fighting with it, consider moving to Git and using Git-Tfs to track changes and push work back in.

Git-Tfs has preserved my productivity and made my work far easier. I want to thank Matt Burke and Ivan Danilov, and all the others that have contributed to Git-Tfs for this great piece of software.