views:

3926

answers:

13
+17  Q: 

TFS vs SVN

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.

+5  A: 

Check out this article before you decide: A Comparison of TFS vs Subversion for Open Source Projects

Sakkle
I not Jeffs comment in the article with amusement "Codeplex will never, ever support Subversion...its an architectural impossibility" (made 2 years ago). Never, say never, like "we will never need more that 640K of memory". ;)
AnthonyWJones
+1  A: 

I don't have experience with TFS, but IDE integration is something you should think about. TFS obviously integrates very well with Visual Studio. AnkhSVN, the only usable free plugin for VS, is often problematic, even in the new versions. I haven't tried VisualSVN, though.

Matt Olenik
TFS integrates with VS, but is not so nice if you want to use it with anything but VS. To me, this is a tradeoff. SVN works better outside of VS, but there are other options.
Reed Copsey
Personally, I like tortoise-svn. The IDE should focus on letting me edit code - I can manage my repo separately, thanks. Most times, I won't do a commit without running my "proper" build/test script at the command-line anyway, so dropping out of the IDE isn't an issue.
Marc Gravell
A confirmation here: I don't AnkSVN for more complex operations (e.g. I don't know whether it can svn copy and merge these days) but there is always TortoiseSVN or the svn command line client to help me out. Together they are fine for my needs (maintenance programming on .NET applications).
reinierpost
I stopped using AnkhSVN because it bugged way too often, including corrupted working copy and whatnot. Would be nice with a VS svn plugin that worked, but TortoiseSVN is comfortable enough.
snemarch
If the last AnkhSVN you tried is an 0.X/1.X version, please try the 2.0 versions before you jump to conclusions; 2.0 is a nearly complete rewrite of the old version. Solution explorer actions like renames, refactoring etc. is all handled and in most cases noticable faster than with all other clients
Bert Huijben
Bert, I have used version 2.0. I was rather disappointed to see it screw up on several occasions.
Matt Olenik
+5  A: 

I've used both - but actually, I've switched my main projects from TFS into SVN. I find the offline and anonymous access very valuable in my projects.

In general, I think they are comparable. I would just pick the one you know the best, and you are the happiest maintaining. I don't find the specific features in one dramatically outweight the features in the other system.

Reed Copsey
TFS 2008 has offline access.
Greg Beech
Yep - sure does and that works great, too!
Pure.Krome
Good to know. Thanks.
Reed Copsey
Even though it does, the fundamental model of offline access is, I must say, broken. The "check out" action is rather ludicrous in a disconnected model, but TFS still makes you do it. And if you don't, it doesn't recognize your changes like SVN does. Ugh!
Dave Markle
+8  A: 

Having used TFS 18 months back I found it buggy, slow, annoying, very limited search criteria and it had the feel of a product rushed out by a team of un-interested, under paid, over worked techs being forced to use Sharepoint and other MS technologies because that's what marketing wanted. Seriously it was a dog, I would have rather used SourceSafe!

SVN on the other hand is bit techie, IDE integration is a pain, and it can occasionally get confused, but the user base is massive and most issue can get resolved with a quick SO quesition.

Have you considered Vault? Works well, and isn't too pricey.

MrTelly
18 months ago that would have been a fair comment; with TFS 2008 SP1 the situation is much improved and it's no longer slow or buggy.
Greg Beech
I've never experienced a single bug in TFS since SP1
Brann
Fail post - 18 months is a _very_ long time. It's current version is very stable and works very very very very well.
Pure.Krome
Maybe a fail, but that doesn't exucse releasing such poor software, I'm happy to be wrong, but it's a valid point of view.
MrTelly
+3  A: 

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.

Brann
Actually there is shelving in latest Subversion release.
Eugene Morozov
Also check SVN annotate command to check who touched a particular line of code. Don't know whether it works in the VS integration, but works perfectly in Emacs. :)
Eugene Morozov
TFS is a PITA to install, but done right it's pure magic
Jonathan C Dickinson
svn + visual svn and tortoise svn is very seamless and not buggy in the slightest.
Dan
Never had any troubles with SVN, either on the server or on the client side. We use the command-line client, and the server is plugged into Apache.
Anton Tykhyy
+1 for TFS anyday, anywhere.
Pure.Krome
@Eugene : I've updated my post accordingly. thanks for the hint!
Brann
@Dan : I was thinking of AnkhSvn when I wrote the 'buggy' word. I've updated my post accordingly.
Brann
You actually got cryptic error messages with AnkhSVN? When I had it installed, Visual Studio would just crash whenever it wanted to.
Jason Baker
I find it extremely hard to believe how big a proponent of TFS you are, because I use it at work and its the most painful thing I have come across. It does a horrible job at merging and while SVN may add markers on conflicts, those are easy to fix. Files go missing when you use TFS! TFS sucks...
achinda99
@achinda99. Well, in my personal experience, I've never experienced any problems with TFS, while I've had a lot with AnkhSVN. Now, I don't pretend my viewpoint is universal ; YMMV ...
Brann
@Brann: Which AnkhSVN did you try to come to this conclusion? The AnkhSVN 1.X codebase of years ago or the 2.0 rewrite of AnkhSVN we released last year?
Bert Huijben
If users have questions on the usability of AnkhSVN, please let us know at [email protected].. If you look at our mail archive (available on that sit) you see that most real user issues are handled within a few hours; but we can't help users that don't ask us.
Bert Huijben
@Bert: I tried the new 2.0 branch, it was 2 month ago.
Brann
@Bert for example : http://stackoverflow.com/questions/458791/how-can-i-change-the-repository-url-using-ankhsvn-2-x
Brann
TFS is a pain for merging beyond "simple merges" because of its Check-Out/Check-In model. I loathe having to "check out" files.
sixlettervariables
@Brann, I can't find a trace from you on any of the AnkhSVN support forums? (User list, Error list, Uservoice page, Irc).. But you can find my month old answer in that question.
Bert Huijben
@Bert: don't get me wrong, I don't imply that AnkhSVN is a bad plugin. I'm just saying it's still work in progress, and is nowhere close to the integration quality of TFS into VS.
Brann
@Brann: Nothing will achieve an integration quality of TFS in VS because its not a plugin. Its a full featured component of VS Team System. How well its integrated doesn't change its sloppiness in checking out/in, merging and branching.
achinda99
@achinda99: well, I haven't experienced the sloppiness you complain about, at least with TFS 2008 SP1
Brann
@Brann, I simply cannot believe your remark about SVN and merging .csproj files. If you think TFS will merge those effortlessly you're in for a big surprise when handling big merges.
Sardaukar
@Sardaukar : I'm using TFS on a rather big solution. Merge are usually effortless, occasionally I've got to do it manually. That's a HUGE improvement over SVN which requires a manual intervention for each and every merge...
Brann
Ankh is much more mature now. you should give it another try
Simon
+32  A: 

"One can not compare between TFS and SVN"

SVN: is Source Code Versioning System
TFS: is full fledged Software Development Management system which contains, Version control, Release management, Requirements tracking, Document publishing and other things.

Both have nice to use IDE integration add-ins(e.g. AnkhSVN, Collabnet's add-in) available for VS2005, so that is not the point to consider.

Criteria to consider for choice:
- If you have a no or small budget project choose SVN
- If you are only looking for version control system choose SVN, if you are looking for complete development management choose TFS
- If you have patience to juggle with different integration tools (CruiseControl.Net, NUnit, NCover, FIT) to achieve proper development environment choose SVN, or if you are looking for out of the box implementation of all these for you then choose TFS

nils_gate
@nils : I definitely disagree about the "both have nice IDE integration". TFS integration into VS is perfect. SVN integration is incomplete (a lot of features are only available from command line), and sometimes a bit buggy.IDE integration is certainly an important thing to consider.
Brann
IMHO, lot of times my visual studio starts crawling as well. If you look for a proper add-in u will get a lesser buggy one.
nils_gate
The SVN plugins for VS are pretty good and after the pain I've gone through with TFS, never again. TFS may be fully integrated with VS, but it doesn't mean that it makes the actual version controlling or simple functions any better.
achinda99
@achinda99 : what SVN plugin are you using?
Brann
@Brann: VisualSVN is good, so is AnkhSVN
achinda99
@achinda99 : well, I've had a lot of problems using AnkhSVN, maybe it's my fault and maybe I was not using it as I should have, but in the end, even if the software is used incorrectly, it's always the software's fault
Brann
I had problems with AnkhSVN until recently, when I upgraded to the latest 2.1.x version. Since then I haven't had any issues.
sgwill
Once again someone tries to compare apples with oranges!! :)
caveman_dick
+7  A: 

It's been 1.5 years now that I'm using SVN for various projects. Setups I've used so far:

  • AnkhSVN client for Visual Studio. It integrates nicely as Source Control provider since version 2.
  • Servers either CollabNet Subversion on windows or Apache 2.2 with SSL + SVN through DAV on linux.

Haven't had any problems with any of these setups and I definetly recommend using SVN as it's free and easy to start using. Also many project management / bug tracking packages integrate with SVN (like trac for instance).

frgtn
+1  A: 

I'd say TFS is more than just source control. If you can afford it, I would definitely advise to use it. When you start using Team Builds for example, or using stuff like Work Items, then you'll see that TFS can really manage your whole development life cycle, providing a rich environment in which reporting, ease of use, slick VS integration and solid source control are all rolled in to one.

It does require some iron on the server side. I do not find it to be slow however, it works nicely over VPN and supports offline work.

A major con is the install process (on the server side) which is tedious, non-flexible and in my mind (I come from a field in which packaging up apps and deployment are very important) a bad example of how SQL Server, Reporting Services, Sharepoint and webservices could be installed.

craziac
+5  A: 

If you're familiar with svn I'd stick with it. Tfs isn't free and isn't simple. It does far more than just source control. If you're a .net shop like us and you're deciding what product to use for the whole dev cycle it's a contender, but for simple source control it's overkill.

danswain
+4  A: 

I'd pick SVN. I've worked with SVN from a developer standpoint before and I currently work with TFS, and let me tell you that TFS is painful. While TFS is feature full and is more than just version control, its version control is sloppy at best. Merging is horrendous and many of us now turn to manual merging or merge tools because we can't rely on TFS. Files go missing, aren't downloaded to the local system sometimes, and there are just oddities in its behavior that make you want to bang your head against a desk.

That being said, if you want TFS in all its glory, are willing to work with its pain points, it is a great tool to setup automated builds, and releases.

achinda99
+2  A: 

TFS can import from SVN, however SVN cannot import from TFS. So if you don’t find a good reason otherwise use SVN, as it is easier to change your mind later.

One of the best things about SVN is that every source code control system I know of can import from it, so choosing SVN us a very low risk option.

Ian Ringrose
A: 

Consider that TFS 2010 can be installed also on Windows Vista / 7 client OSs and that it supports an express, three clicks, installation.

Sid
A: 

Read a list of strong and weak points of Team Foundation Server from the perspective of a developer who switched to it after using Subversion: http://dobrzanski.net/2010/04/17/tfs-subversion/

Jaroslaw Dobrzanski