TFS issues:
- Does not always get the latest version correctly
- Merge gets confused : “Nothing to merge”
- Files get out of sync, TFS said "Nothing to check in"
- Workspaces get corrupted
- Auto-merge is unreliable
- The built-in merge tool is so bad it might as well not be included
- Slow
- The UI is annoying and esthetically displeasing
- Limited search functionality
- Integrated Work Item Tracking is terrible
- Makes the controlled files read-only
- UI is not optimized for pure-keyboard use. We’re talking about programmers here!
SVN issues:
- No native integration with TFS Build Server
- Auto-merge is still somewhat unreliable in more complex scenarios
GIT / Mercurial issues:
- No native integration with TFS Build Server
- GUI tools are not very polished yet
- Learning curve (aka paradigm shift)
With Mercurial and GIT there’s no “server” component. Instead, every developer gets a copy of every repository he works on. Still, it is often convenient to designate one location as the master copy.
Mercurial:
GIT:
SVN:
Microsoft CodePlex supports Mercurial as of Jan 2010. Google supports Mercurial on its Google Code. Google chose Mercurial after conducting extensive analysis of the differences between Mercurial and Git. Both Microsoft and Google mention Mercurial's superior Windows compatibility.
There are hosted solutions like http://www.codebasehq.com/ or http://www.activestate.com/firefly/plans/ that support integrated work item tracking
Seriously though, Subversion is the way to go for most non-distributed development teams. Subversion is tried and true. Mercurial is nice for the federated open-source projects with lots of people developing in parallel but its overhead and the learning curve is just not worth the risk/overhead IMHO.
Still not sure about build server integration though…
Tags: