I am about to start a project (.NET) and need to decide between TFS and SVN.
I am more used to SVN(with tortoise client), CVS and VSS. Does TFS have all features available in SVN
Have any of you switched from SVN to TFS and found it worthwhile?
Also it looks like we may need Visual Studio if we need to work with TFS.
[Edit]
Money is not a consideration since we already have the licenses for TFS in place. And I am more interested in the Source Control features of TFS vs SVN, of course other features list is also welcome.
Well, to me, the choice is obviously TFS :
SVN integration into Visual Studio is incomplete to say the least (a lot of features aren’t available from the IDE), and a bit buggy (AnkhSVN certainly is), while TFS one is perfect (which makes sense…). I’ve had my whole workspace corrupted several times using SVN (during one month), never using TFS (aprox 2 years)
While Source-Control related features of both systems are probably quite equivalent, they are accessible directly from the IDE with TFS, while you have to rely on TortoiseSVN or other external tools if you use SVN. Almost all TFS tasks are accessible in a few clicks on the solution explorer tab.
Merging is a lot easier with TFS, even for complex merges (for example, SVN will add <<<<<<‘s and >>>>>>>>>’s to your .csproj files, so you’ll need to manually edit them to open them again from VS.)
While I think those reasons are more than enough to prefer TFS over SVN, I mus add that :
TFS is more than just a source-control tool (think work items, project portal, etc.)
I’ve used it on a medium-sized project (12 coders, 3 testers, 3 business analysts) in the past, and we’ve been able to successfully centralize all the tasks in TFS (bug reports, project documentation, build process, etc.)
I’m not saying it’s not possible to do the same using SVN and other third-party tools, but it’s definitely nice to have all things nicely integrated in one product.
To stay fair, here are the two obvious drawbacks of TFS :
Its price
Installing TFS is quite a pain, while SVN installation is a matter of minutes.
Installing TFS 2008 over SqlServer 2008 is quite complicated, you cannot install TFS on a PDC, etc. To me, it’s definetely the worst installation experience I’ve ever had with a Microsoft product.
That being said, once installed, TFS is very easy to use (especially for coders not familiar with source control systems)
In my current project, I started with SVN, and quickly switched to TFS. I’m happy I did.
The main reason why I’ve decided to switch is clearly the overall buggy behaviour of SVN (I was using VisualSVN as a server and AnkhSVN as a client). At least once a week, I found myself spending hours on cryptical AnkhSVN error messages.
To date, I haven’t found a single reason to regret the switch to TFS.