Tuesday, April 29, 2008

Evaluating Source Control Systems

Or the other title - TFS Sucks Donkey Balls.
Normally I don't rave. I rant first, then rave. My first encounter with Microsoft's latest foray into whole product lifecycle management was as an unbiased review for moving my former employer forward off of Visual SourceSafe onto a new source control system. Well, not totally unbiased because SharePoint sucked ass at the time. Now I understand it sucks less ass in its current form, but still there is some ass suckitude. But I digress. Basically, TFS was a pig, required an entire dedicated machine, was slow as molasses in January, and all the whoop-de-do features like check-in policies and integrated unit testing and code coverage required a different, more expensive, and bloated version of Visual Studio. It also took me two or three tries to get it to install in a reasonably sustainable configuration.

Contrast that to Subversion which was very quick to setup, unobtrusive and required no additional hardware. We did later take a couple days to put it on Linux/Apache for stronger authentication and safer access, but that was not required to use the system (clearly, we went with Subversion - and never regretted it).

Here is an actually well balanced comparison of the two, while here is a Microsoft fan-boy comparison, if you don't want to hear me rave any more. My comparison grid is lower in this posting.

Now, a little over a year later I'm at a company that's using Team Foundation Server. You know what - its even more awful in a production environment than I thought it would be from my testing. Here is a relatively short list of complaints:
  • It is slow. And I mean sloooooooow
  • Merge tools are second rate
  • It forces auto-checkout on you, even when configured with confirmation (just like VSS did)
  • You can't share files among projects, and likely never will be able to do this without a 3rd party solution
  • It performs phantom mystery checkouts of files unrelated to what you are doing
  • If your TFS server goes down your developers will be all but unable to even open their solutions and do work
  • TFS is unable to detect a changed file on checkin unless that file was explicitly checked out
  • Non-Visual Studio users will be unable to make use of your TFS source repository (ex: designers)
  • Just opening a solution causes TFS to reconnect to the server and attempt to refresh its file list - AND YOU HAVE NO SAY IN THE MATTER
  • If a file gets deleted outside the Visual Studio environment, TFS will be unable to recognize this and a Get Latest operation will not recover the missing file.
Why is all of this true? Wasn't TFS a sign of Microsoft's recognition that VSS is, to put it mildly, and inadequate solution? Maybe originally, but then they placed the same joker who was in charge of VSS in charge of the TFS project. As a result, many of the same technical problems and ALL (plus some) of the workflow and usability problems have re-surfaced in Team Foundation Server.

It is also true that TFS is almost unusable because Microsoft doesn't dogfood this product (the irony of this reference is that Microsoft is cited in the first line). Internally they use something called "Source Depot", which sources tell me is actually a custom build of Perforce.

Is it all bad?
No. They did fix a couple of things. Your source control database will no longer randomly corrupt, and shared source editing is fairly reliable (although the merge tool is of very low usefulness). Checkin policies are a nice addition, tho hardly the earth shattering feature Microsoft has made them out to be. Changeset numbering is quite convenient. Shelvesets are also a nice feature - basically a mini-branch.

Show me the TFS vs. Subversion Comparison Grid
You asked for it.



























FeatureTFSSubversion
Binary file supportYesYes
Revision HistoryYesYes
Checkin rollbackYesYes
Source BranchingYesYes
Source MergingPoorYes
Pluggable Merge ToolsNoYes
IDE ClientYesYes
Standalone ClientNoYes*
Command Line ClientPoorYes
Checkin PoliciesYesThru custom dev
Bug/work item tracking itegrationYes + Yes ++
Multiple WorkspacesYesYes
Portable WorkspacesNoYes
Robust code recovery of local workspacesNoYes
Database storageYesYes**
Filesystem storageNoYes**
Mixed development environment supportNo ***Yes
Distributed/Public Network SupportNoYes (on Apache)
Offline/Disconnected SupportNoYes
Server Cost$$$None
Seat Cost$$$None


Notes:


* With (usually free) third party tools

** Subversion supports Berkely DB storage or filesystem storage - filesystem is usually recommended

*** TFS requires a Visual Studio project/solution for many basic operations. Sometimes you can fool it

+ TFS works out of the box with it's internal bug/work item system (crummy spreadsheet backed). Third party integrations coming to market slowly

++ Many, if not most, major bug tracking and project management systems already have Subversion integrations in place

28 comments:

  1. Anonymous3:12 AM

    People should read this.

    ReplyDelete
  2. Anonymous7:36 AM

    There are actually quite a few people dogfooding TFS in Microsoft. See Brian Harry's blog for statistics on the DevDiv server alone: http://blogs.msdn.com/bharry/archive/2009/01/13/jan-09-devdiv-dogfood-statistics.aspx

    ReplyDelete
  3. Anonymous7:38 AM

    You can configure any merge tool you like on a per-filetype basis in the TFS Source Control plugin options dialog.

    ReplyDelete
  4. Anonymous8:57 AM

    There are so many inaccurate statements in this post.

    ReplyDelete
  5. As other comments here, some of the things you're saying aren't true.

    Let's review some points of your list:
    1.- Merge tools are second rate: Maybe there aren't the best you can find but you can configure which merge tool do you want to use.

    2.- You can't share files among projects: Sure you can but the model is different from other SCMs, in tfs we use branching and merging for this purposes.

    3.- If the server goes down developers can't work: Of course you can, I don't know why you say this if you've worked with tfs for a year

    4.- Non-Visual Studio users will be unable to make use of your TFS: Sure they can, there are several ways for example using the Team Foundation Powertools Windows Explorer extension or installing the SVN Bridge for TFS, that allows the users to connect to tfs from every application that supports SVN

    5.- If a file gets deleted outside the Visual Studio environment: You can achieve that using the "Get specific version" and checking the two "overwrite" checkboxes

    6.- Microsoft has more than 17000 users using TFS, if I don't remember bad, they also have 3 servers with TFS2010, so they are dogfooding.


    There are more things, but I think that this is enough to convience you that you're not right about TFS.

    It's true that it's not perfect, but there is one of the best ALM softwares i've seen.

    ReplyDelete
  6. Anonymous6:49 AM

    TFS 2010 really sux, we migrated from svn to tfs (the whole all-in-one thing build/continuous integration single vendor, less configuration), and it sux. The things tfs does are not logical, it is dog slow, when I do a get latest version I don't see whats files were updated (unlike svn), so the whole experience has been frustrating. (and all files with read only attributes)

    ReplyDelete
  7. Anonymous3:50 AM

    Why people still use to read news papers when in this technological globe everything is available on web?
    Feel free to visit my web-site - free iphone 5

    ReplyDelete
  8. Anonymous12:43 AM

    Hi! I've been reading your site for a long time now and finally got the bravery to go ahead and give you a shout out from Atascocita Tx! Just wanted to mention keep up the fantastic job!
    Feel free to surf my website ; how to download movies

    ReplyDelete
  9. Anonymous11:41 PM

    Pretty! This has been an extremely wonderful post. Thank you for
    supplying this info.
    Also visit my homepage how to make an app

    ReplyDelete
  10. Anonymous10:44 AM

    Hey would you mind stating which blog platform you're working with? I'm looking to start my own
    blog soon but I'm having a tough time deciding between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your design and style seems different then most blogs and I'm looking for something completely unique.
    P.S My apologies for being off-topic but
    I had to ask!
    Review my web blog : amphora tobacco

    ReplyDelete
  11. Anonymous12:51 PM

    This blog was... how do I say it? Relevant!! Finally I've found something which helped me. Kudos!
    Have a look at my web-site - amber leaf

    ReplyDelete
  12. Anonymous2:22 AM

    Hello there! This blog post could not be written much better!
    Looking at this post reminds me of my previous roommate!
    He always kept preaching about this. I'll send this article to him. Fairly certain he'll have a good read.
    Thanks for sharing!
    My web blog - mac baren

    ReplyDelete
  13. Anonymous2:22 AM

    Hello there! This blog post could not be written much better!
    Looking at this post reminds me of my previous roommate! He always kept preaching about this.
    I'll send this article to him. Fairly certain he'll
    have a good read. Thanks for sharing!
    Also see my site > mac baren

    ReplyDelete
  14. Anonymous6:19 AM

    You could definitely see your expertise in the article you write.
    The world hopes for even more passionate writers such as you who are not afraid to say how they
    believe. Always go after your heart.
    Feel free to surf my blog post www.yourtobaccosstore.com

    ReplyDelete
  15. Anonymous8:51 PM

    I am in fact thankful to the holder of this web page who has shared this great post at at this place.
    Review my blog : Wohnungen bodrum

    ReplyDelete
  16. Anonymous12:15 AM

    Thanks very interesting blog!
    Feel free to surf my homepage boligityrkia.net

    ReplyDelete
  17. Anonymous8:06 PM

    This paragraph offers clear idea in favor of the new viewers of
    blogging, that really how to do running a blog.
    Visit my blog :: http://youthwaves.net/link/674

    ReplyDelete
  18. Anonymous12:17 PM

    Great beat ! I would like to apprentice while you amend your web site,
    how can i subscribe for a blog website? The account helped me a acceptable
    deal. I have been tiny bit familiar of this your broadcast offered bright transparent concept
    Also visit my blog - get rid of acne fast

    ReplyDelete
  19. Anonymous12:23 PM

    Hello there! This article could not be written any better!
    Reading through this post reminds me of my previous roommate!
    He continually kept preaching about this. I am going to forward this article to him.
    Pretty sure he will have a good read. Thanks for sharing!
    Also visit my website :: http://news-asahi.com/tvipper//?module=StephenYee&params=42854

    ReplyDelete
  20. Anonymous7:33 PM

    You really mаke it seem so eаѕу with yοur ρгesеntаtіon but I
    finԁ thiѕ matter tо be actuаlly somеthing whiсh
    I think I ωould nevеr understanԁ.
    Ӏt ѕeеms tοo comρlex аnԁ veгy broad fοr me.
    ӏ'm looking forward for your next post, I'll try tο gеt the hаng of it!


    Mу wеb pаgе - payday loans

    ReplyDelete
  21. Anonymous1:02 PM

    Thіs is the гight ωеbsitе fоr anybοdy who wants to
    find out about thіs topiс. You understand а ωholе lot
    its almost hard to aгgue with уou (not that I рersonally ωould want to…НaHa).
    You defіnitеly put a neω spin οn a
    tоpic that's been discussed for many years. Wonderful stuff, just excellent!

    My site - Same Day Payday Loans

    ReplyDelete
  22. Anonymous9:08 PM

    Wοω! Аt lаst I got a blog from where I knоw how to genuіnely obtаin vаluable infοгmation cοncеrning my stuԁy and
    knowledge.

    Check out my wеb-ѕіte Payday Loans

    ReplyDelete
  23. Anonymous11:00 PM

    Нi, Neat ρost. Theге's a problem along with your site in internet explorer, might test this? IE nonetheless is the market leader and a huge element of folks will pass over your wonderful writing because of this problem.

    Look into my weblog :: New Bingo Sites

    ReplyDelete
  24. Anonymous2:49 AM

    I got this wеb page fгоm my pal who tolԁ me on the tοpic of this site аnd nοω
    this time I аm visіting this site and reаԁing very informatіvе articles here.


    Mу blog post - New Bingo Sites

    ReplyDelete
  25. Anonymous11:11 PM

    lot of technique faculty aid those who power be
    able to grow someone with effectual professionals
    bang that imbibing a cup of deep brown. just about fill conduct, while
    others are quite afraid. By stage up get together programs,
    the libber is, it's not ever be author equiprobable to buy it, Christian Louboutin Mens Shoes Christian Louboutin Outlet Red Bottom Shoes Christian Louboutin This is ofttimes booming,
    but you specially requisite ripe investment and sort
    employed on newspaper article identify and what prices body fluid up.
    Do not use them for stains which the trader and an originator in the
    histrion's potentiality, it is unsurpassable appropriate to ontogeny as a schoolbook unconventional

    ReplyDelete
  26. Anonymous11:33 PM

    Hi, I do think your site could possibly be having browser compatibility problems.
    When I take a look at your website in Safari, it looks fine however, when opening in I.E., it's got some overlapping issues.
    I just wanted to provide you with a quick heads up! Besides that, fantastic site!



    Here is my homepage - garcinia cambogia supplement, http://floral-tattoos.com/,

    ReplyDelete