Friday, March 30, 2012

Why TFS sucks giant hairy balls.


I have been using TFS at a client for SCM. It is the worst SCM tool I have used so far. I thought there was no parallel for ClearCase in how unproductive the tool can be, but TFS has got ClearCase beat by miles. TFS has managed to be worse than even CVS. Below I list my grievances about TFS. At the time of writing this article I am using four different TFS interfaces to manage the TFS’s stink.

TFS CLI
TFS Windows Explorer Integration
TFS GUI Client
TFS Eclipse plugin

No ignore option.
There is no inbuilt gui for ignoring files from SCM. You are expected to edit .tpignore file. Well now, you carefully edit the .tpignore file like TFS respects you for being a human and guess what, TFS just made you the sucker because eclipse plugin decides whether or not to honor that file depending on what day of the week it is.  The only interface that seems to honor this is the Visual Studio TFS client. 


I wonder how and why large corporations pay thousands of dollars for this crap and chose to go with vendor lock in. In the age of GIT and HG, TFS has invented new lows.

No Detect Local Changes.

Other than eclipse none of the other interfaces seem to have a detect local changes option.

Very Intrusive

IMO, a SCM tool is supposed to track the changes in file contents and not the meta-data. On one hand I am trying to escape the wrath of eclipse and on the other hand I have to put up with the TFS crap.

I try to edit the files in netbeans and so I have to remove the lock that TFS puts on the files, so I change the permissions. I make a very minor change in a file and now I need to commit the changes.

So I right click in Explorer only to find there is no detect changes option. So I try the Get Latest Changes button, nothing happens. TFS GUI Client seems to behave the same way.
So, I start eclipse so I can commit the changes, well guess what the almighty eclipse plugin does, it marks all the files in the entire project as modified even the freaking jar files. There goes my entire day trying to figure out which file was actually edited. Try explaining that to your lead and business folks. What are you fucking molested as a child ? You dare say learn TFS way, I say trying to find workaround for TFS's short comings isn't a way, it is, by all means, hacking. 

Why does TFS give a fuck which editor I use to edit the files. Compare different versions of the files and see if there are any differences in the files and mark as changed.


Does not warn when there are file conflicts before checkin


I have had multiple occasions when TFS silently overwrites the version on the server without telling me that there is a new version of the same file on the server.

Only work around to this is update the source code and build right before checkin.

More suckiness to come ......