Category Archives: kool-aid

TFS v. SVN: 2012 update

TFS 2012 offers some new features to make life easier for developers who prefer the SVN/DVCS style of version control. It’s a better option than ever, especially for unifying teams with diverse OS/platform/language development needs.

A while back, my colleague Martin wrote a nice summary in response to some critiques of TFS 2010 when compared to Subversion (SVN).  I happen to be working on some documentation for a customer on this topic, I thought I might share what’s new now that TFS 2012 RTM is right around the corner.

TFS objection #1: Branch confusion

Fixed in 2010 and still fixed in 2012.  :)

TFS objection #2: Checking out

If you want to edit a file you need to check it out for edit so that it’s listed in Pending Changes window after it’s changed. If you edit a file directly in Visual Studio it checks it out for edit automatically; however, if you make the changes outside Visual Studio (you need to change Read-only property prior to that) and forget to check it out for edit in Visual Studio the file is not listed in Pending Changes window. Consequently, the risk of not including that item while making a check-in increases (I personally experienced that a couple of times….) – Jarosław Dobrzański, TFS vs. Subversion

I have heard this from many other SVN users and I completely agree and understand the perspective. Although I find it difficult to understand how you know which files you have checked out when you don’t have this, it looks like all the source control products are going in this distributed direction and I will just have to go with the flow. – Martin Hinshelwood, TFS vs. Subversion Fact Check

Martin was right!  They are all going in this direction!  TFS 2012 now supports Local Workspaces and in fact new workspaces are even Local by default.  This means:

  • Edit, add, or delete any file
  • In any editor, not just Visual Studio
  • Without an explicit check-out
  • Pending Changes detects all the changes for check-in

But what if my team still wants server-side visibility when someone has checked out a file?  Explicit check-outs are still available, and Server Workspaces still exist.  Best of both worlds!

TFS objection #3: Windows only

Fixed in 2010, and still fixed in 2012!  Team Explorer Everywhere is a full-fledged member of the TFS suite and offers command-line support for Mac OS and Linux, plus an Eclipse IDE plug-in.  And one of the major pain-in-th… pain points for non-Windows users was having to interact with explicit check-outs through the command line, which is fixed in 2012 thanks to Local Workspaces!

TFS objection #4 and #8: Reverting changes

Fixed in 2012!  Rollback is now supported in the UI.

TFS objection #5: Cost

New options in 2012!  TFS Express is free for small teams.  Team Foundation Service is now in open preview; at the moment it’s totally free, and they’re promising to always have a free version though we don’t know how full-featured the free one will be.

TFS objection #6: Difficult to install

Fixed in 2010!  Here’s a video of my colleague Steven Borg installing TFS 11 Beta in four minutes, 58 seconds.

Not fast enough for you?  OK, how long does it take to enter your Windows Live ID and password into Team Foundation Service…?  :)

Now, if you’re upgrading something with more complex requirements (customizations, consolidations, compliance) or you need to migrate from other tool(s), of course that might take longer than five minutes.  But it’s doable.  Northwest Cadence has lots of experience with upgrades and migrations, including the new TFS 2012, and we’d be delighted to help.

TFS objection #7: Switching between branches

Same as before.  There are some advantages to the way TFS does it, but basically it’s just a preference thing.


One great big change (Local Workspaces) and a few little ones (rollback in the UI, along with baseless merge in the UI and other improvements) make TFS a more comfortable option for developers who’ve previously used and liked SVN.  Where I think this is the best news is for diverse cross-platform dev shops, which are proliferating especially as more organizations need to move into mobile.  TFS with TEE is a really, really good option to bring all of your developers, regardless of language or OS or platform or geographic location, together around a common ALM solution, and with 2012 it’s a better choice for developers than ever.

Update 1, July: DVCS

DVCS <> SVN.  My #fail, and I have done lots of reading and querying to properly learn the difference.  Thanks to Kyle for pointing that out.

Update 2, August: Actually, DVCS…

TFS is getting on the DVCS bandwagon!  There’s a new bridge that syncs between a Git repo and TFS (Git, not github).  It’s a cross-platform implementation and open source on CodePlex.

This is a great option for organizations, especially cross-platform shops: take advantage of the things TFS does well (integration, traceability, metrics) while still giving dev teams the flexibility to work with their source the way they want to.

Update 3, January: MOAR DVCS!

Real, full-fidelity, Git as the SCM under TFS.  Not a bridge or a sync, just Git for TFS.  First-class integration and traceability between source and everything else ALM.  Woo.