Team Foundation Server offers a version control system, but with many more side features, such as bug tracking, user stories, project planning, and it is all integrated into visual studio. Someone put a more complete list of features over here:

Over the past year I have been working with Mercurial and from the moment I typed "hg init" I was in love. My new colleagues are convinced that even though other scm solutions are probably better, TFS provides a better complete package for teams.

What I would like to know is whether it is better to just use TFS, or to go the open source route and select various solutions and integrate them to get a better result, and if its even possible to get that level of integration?

So in summation: Can it be done and is it better to go for various OSS tools?


Sometimes certain software solutions want to do everything and that drives their doom.

Mercurial, Git and others are just focused on being good VCSs, and they are probably the best ones around (mind the advantages that you get from having a distributed version control system).

IMHO, if you want:

  • The best bug tracking you go with Jira, Redmine, ...
  • The best wiki you go with Confluence, dokuwiki, ...
  • The best agile tool you go with GreenHopper, Agilo, ...
  • The best DVCS repository management you go with Rhodecode, Stash
  • The best online DVCS repository management you go with Bitbucket, Github, ...
  • The best SCM/VCS you go with Mercurial, Git, ...

It is harder to find one thing that gets all things right than all the right things.

And BTW, as a SCM/VCS, Mercurial is undoubtedly a better tool than TFS for the sole fact of being distributed (and if you don't agree, you are ugly and stupid —Linus Torvalds).

Read the following article to finish convincing yourself and your team: http://hginit.com/00.html (Subversion is centralized like TFS)

| improve this answer | |
  • Tempted to downvote, but comment seems more appropriate: Being distributed may not at all be anything you need or want from a VCS. – Martin Ba Aug 17 '12 at 7:47
  • 1
    @Martin That is a little relative, most people I know to whom I have taught DVCS tell me they do not know how could they live without it. To know that you do not "need" distribution in your VCS means actually using a DVCS, understanding it and then discarding it. I have never seen that happen. In other words, you might not know if you need a DVCS until you use one. – dukeofgaming Aug 20 '12 at 19:21
  • I wouldn't have placed Greenhopper even in the top 10 agile tools - it's awful! – MattDavey Aug 21 '12 at 12:44
  • 1
    @duke - I will readily admit that I have never used a DVCS in production. I have, however, looked very carefully at how these tools work and back in the day (~2005) I was involved in choosing a VCS for our company. All I can say is that Git and Mercurial are great VCS tools but for our centralized team they would have meant major overhead to make the DVCS "look like" a centralized system to our devs, with no real benefit from the distribution. – Martin Ba Aug 21 '12 at 17:18
  • 2
    @Martin That is a common misconception. You can do your standard centralized workflow and still benefit in a number of ways from DVCS technology, such as: no commit races, better merging, offline browsing/loading of the revision history, private local branching, etc. Also, "back in the day" DVCSs weren't as mature as they are now, and they were less integrated to other tools/environments such as IDEs, graphical tools and OS GUI integration. You might want to take a look again. – dukeofgaming Aug 22 '12 at 7:50

As you know Mercurial is just a small part of a larger puzzle. There are various hosting sites out there that offer many of the other jigsaw pieces eg. Bug tracking, issue management, documentation/wiki, code review etc.

A good free example is bitbucket.com

A good commercial example is FogBugz/Kiln

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.