12

We are with 6 developer and currently use Visual Studio 2008 Professional with SVN and Visual SVN. As soon as vs2010 is released we will upgrade from vs2008 pro to vs2010 premium.

However if Team Foundation Server has a proper source control included in vs2010 premium, then it does make sense to use it. We like SVN, but like tight integration of tools even better.

On the internet information on SVN versus TFS 2010 seems to be scarce. Hence my question here.

EDIT: This video looks very compelling. Is this marketing talk or real?

Thank you all for your replies! I absolutely appreciate this. A little more background info.

This is our current stack; vs2008 pro, Visual SVN, SVN, Jetbrain Teamcity. My main problem is that we use a lot of tools from different vendors which more or less integrate. Sometime more, mostly less. At least it takes a lot of time to set it up correctly.

We currently do not use branches, but we want to. Therefore we have to set up SVN from scratch (we looked into it carefully). So let me rephrase my question: Should we set up SVN or start using TFS?

RandomProgrammer
  • 1,570
  • 1
  • 14
  • 23
  • *information on SVN versus TFS 2010 seems to be scarce* Well of course it is, TFS is an early beta. What do you expect? – blowdart Jan 03 '10 at 11:39
  • @Mitch Wheat, Please assume the same expectations that any development shop would have: source control, continuous integration, code metrics. The usual. – RandomProgrammer Jan 03 '10 at 11:46

14 Answers14

18

From my experience, TFS as a source control server is not the right choice. Merges are terribly slow, check-in procedure is counter-intuitive and usually ends with locked files that only an administrator can unlock. SVN is far more mature, flexible and fast.

pau.estalella
  • 2,197
  • 1
  • 15
  • 20
  • 5
    Totally disagree with those views. Maybe your hardware has problems? – Mitch Wheat Jan 03 '10 at 10:30
  • 1
    That may be part of the problem. Or maybe the server is not properly configured, and that's why the client sends such a large chunk of data to the server to get a little change merged. I just know enough of TFS to want to avoid it. – pau.estalella Jan 03 '10 at 10:34
  • 6
    +1. The "files are always readonly until checked out" model that it brought with it from sourcesafe REALLY irritates me, and the UI's for checkin/merge/etc have poor usability – Orion Edwards May 02 '10 at 23:56
16

If you are a Microsoft shop, then TFS is a good fit.

If Subversion does everything you need, would you fix something that is not broken?

You have to have a reason to change.

[I use TFS at work and it works great, with very few problems. I use Subversion at home, simply because I need less infrastructure].

Update [2012/05/01]: If you are not a Microsoft shop, then Git and mercurial would now be the tools of choice.

Mitch Wheat
  • 295,962
  • 43
  • 465
  • 541
  • 1
    With TFS 2010 you can install it on your laptop. I run TFS at home because it is a 20 minute install and I get Version Control, Work Items and build all out of the box – MrHinsh - Martin Hinshelwood May 06 '10 at 18:47
  • 4
    TFS tries to be a complete Application lifecycle tool, defect tracking, source control all in one. In my current and past experience with TFS ive have found that it is not the best solution for any of these, and that a combination of other tools that specialise that can connect are better (not perfect). Svn with JIRA, SVN with Teamcity and Teamcity with JIRA makes for a much more flexible and fully featured stack. – James Woolfenden Jul 28 '11 at 07:56
  • TFS has its idosyncracies, but it works well for source control and ALM. Defect tracking is not my favarite part of it... – Mitch Wheat Jul 28 '11 at 08:32
15

There seem to be many people recommending the switch to TFS, I'd like to go the other way.

I moved from working with SVN at a previous job over to TFS at a more recent job. I'd summarize it like this:

The integration is attractive, and there's nothing else which has as many parts all integrated together. The tradeoff is that each of those individual parts kind of sucks.

More Detail:

The source control system, while technically very good on the server, etc, is PAINFUL to use. Files are always marked read only and you have to explicitly check them out to edit them. This makes your life awful unless you're using the visual studio integration 100% of the time... And if you are using the visual studio integration, remember that it stores the SCC status of all your files IN THE CSPROJ FILE, so be prepared to deal with occasional confusion and failure because you added the file to TFS, but visual studio hasn't realized this (or vice versa).

The bug tracking system has poor and limited search, and the UI is hard to use. It reminds me a lot of old access database forms. Compare this to a nice clean web-based tracker and it's night and day.

Overall, most of the UI's have really poor usability. While you can get many things done using TFS, it won't be quick, and you'll have to click on far too many combo boxes!

Additionally, TFS has very tight integration with your domain. If 100% of your staff and all your build/test machines are all on the same domain then this is probably fine... but if you're not, then this will cause you some pain.

Orion Edwards
  • 121,657
  • 64
  • 239
  • 328
  • 1
    Version Control - TFS works diferently to SVN. Get over it. All products differ in some areas. If you realy cant adapt then get yoru admins to install the SVNtoTFS bridge from Codeplex. – MrHinsh - Martin Hinshelwood May 06 '10 at 18:59
  • Bug Tracking - You do realise that there is integration in TFS for Excel and Project? You also get a realy good Web Interface with search. + You can create any personal quieries you like in team explorer. I have never seen a product with more search options.... well, apart from full text, but some things you juts have to live with – MrHinsh - Martin Hinshelwood May 06 '10 at 18:59
  • 6
    I'm not opposed to TFS working differently to SVN. My point is that you will encounter a number of problems and pain points (which I listed) when using TFS. If being painful to use is a fact of it working differently, or just because it's buggy, then that's a seperate issue. – Orion Edwards Oct 21 '10 at 22:27
  • 1
    Regarding the full text search, if you can live without it, then you may be happy. Sometimes though, you just can't live without it. – Orion Edwards Oct 21 '10 at 22:28
9

SVN does source control. Its default client is the command line, but GUI tools exist.

TFS does source control, bug/issue tracking, automated builds, reporting for managers and can cure male pattern baldness. Its default client is Visual Studio.

If all you want is source control then SVN works, and why change what isn't broken. If all you want is tighter integration into Visual Studio then look at Ankh or VisualSVN.

If you want automated builds, continuous integration, check in policies and rules, reporting, issue tracking and you want it all in one then TFS is for you - assuming you don't venture outside of Microsoft Development Tools (generally - there are plugins for other IDEs). You can get the same thing with other FOSS tools, and wrap them together with sticky tape around SVN and that works too, it's just not as seamless and needs a little more investment.

However you're comparing a source control system to a development lifecycle management tool. TFS does source control, but it does so much more.

blowdart
  • 55,577
  • 12
  • 114
  • 149
8

Really, you should try it out with a new, test, system to evaluate it. Plenty of people hate TFS and some think its not suitable for their ways of working. Also its not so free when you have to start buying the better versions of VS for the added features that you'll want once you're addicted.

There are reviews on the web that are not by MS marketeers that show that TFS isn't the best thing since git. Martin Fowler's survey for one is very interesting (of the 54 responses, not one thought it was great or even good). Maybe his readers are less keen on the 'full lifecycle' dev tools than most developers, but then, maybe they're just the same as the rest of us. Similar reviews are available - including Forrester Research's piece (which I have read: executive summary, SVN is "teh win" of the standalone SCMs)

So, just because TFS is now included in VS does not make it the best there is. You need to evaluate it properly before switching.

gbjbaanb
  • 51,617
  • 12
  • 104
  • 148
7

I used TFS when I had to, and hated every minute of it. It just stood in my way too much, and it took forever to do anything remotely. But mainly it's just my irrational hate. If one out of your six programmers is like me you'll have a problem. And programmers are more important than tools.

yu_sha
  • 4,290
  • 22
  • 19
  • 1
    Programmers come and programmers go, but you Toolset sticks around. I think you have an irational hatred, and maybe sub spec hardware. I connect to a TFS server in Sydney from the UK and have no problems... – MrHinsh - Martin Hinshelwood May 06 '10 at 18:51
  • 7
    The toolset sticks around, but the toolset doesn't actually do any work. You don't get paid by having installed any tools, you get paid by selling the work that the programmers produce... If your toolset is making it hard for your programmers to work, or causing programmers to avoid your company, then perhaps the toolset needs to be replaced :-P – Orion Edwards Oct 21 '10 at 22:32
2

I'm a Java developer, but all my friends are .Net, they all seem to prefer SVN with Tortoise. SVN is well supported by the open source community as well.

mohdajami
  • 9,604
  • 3
  • 32
  • 53
  • You say supported, but if I have a problem that is a bug or even just poor setup will they come round and fix it? Microsoft will! Well, depending on your support agreement ;) – MrHinsh - Martin Hinshelwood May 06 '10 at 18:54
  • 1
    I'm in the Middle East, although there is a MS branch in Dubai, but no they won't come! Here, if the internet fails you, then you are screwed. – mohdajami May 07 '10 at 00:10
2

I think TFS is fantastic. Having bug tracking and source control fully integrated with Visual Studio is a big time saver. The on-the-wire protocol isn't too chatty, so it's also suitable for work over the Internet if/when needed.

There are many other features that are also useful, such as the team portal, statistics tracking, tracking test histories, capturing test outputs as part of a bug (very handy!), etc.

They also have full command line support for scripting, automated builds, a standalone TFS client for use outside of Visual Studio (say by non-developers), and optional integration with third-party tools such as Eclipse for mixed Java/.NET shops.

The main downside is price -- but if you can afford it, I think it's the best system out there at the moment.

RickNZ
  • 18,448
  • 3
  • 51
  • 66
2

If you're only using it for version control, stick with SVN. If you've got Linux/Java solutions, stick with SVN. If you're MS only and you fancy using work items for requirement/bug tracking etc. (which I do like) consider the move to TFS but remember you'll need to budget for CALs so that people can access this information. If you want overnight testing/CI builds remember to budget for extra VS licences for your build server because teambuild (msbuild) can't build a VDProjs, Intel projects etc.

also... TFS 'seems'/'appears' to struggle with some really basic things e.g. how to ignore files you don't want to put in the repository and it frequently marks files as having been changed that diff shows as being identical.

timB33
  • 1,977
  • 16
  • 33
1

It's more a psychological, than a technical question.

As to my opinion, you should not migrate and keep yourself simple. Having only 6 developers, you will not get to anything complicated enough to use even a portion of high-level TFS2010 abilities.

VisualSVN is a good tool that keeps you "integrated" enough. And it will be improved even better.

sbi
  • 219,715
  • 46
  • 258
  • 445
alemjerus
  • 8,023
  • 3
  • 32
  • 40
1

Though this might help you make a decision; I would agree with Mitch. You've got to have a good reason to change. SVN is way mature and dependable then TFS. Plus, the TFS is primarily targeted towards Microsoft applications, compared to the scope of SVN which is way beyond TFS.

KMån
  • 9,896
  • 2
  • 31
  • 41
1

I had TFS at my last client, now my new client has subversion and its awful. No shelving is a real killer.

Did I mention its free with VS 2010

mark
  • 19
  • 1
1

I've used both TFS 2010 and SVN (with Tortoise), Mingle, MediaWiki, etc.

Although TFS gives you Source Safe style integration with Visual Studio, that's where the niceties end. SVN is much better at version control, Mingle is a blindingly better collaboration tool and MediaWiki is a much better wiki.

If you need to test TFS's main offering as source control, then create several TFS projects, add some changes and try reverting to a previous version. You'll need a command prompt tool and it'll be sheer look if you happen to rollback the correct project after following the shoddy online instructions.

November9
  • 11
  • 1
0

Where I work, have the group is migrating over to TFS from DOORS mainily for requirements, specifications, etc. They still use Perforce as the repository. I have used most of the repositories out there and each one has there own quirks.

To answer your question - what is the problem your trying to solve? Do you need a integrated solution to manage your documents, bugs, source control? TFS gives you the integration portion so that each time you check in code you can tag it back to a bug, a requirement, a specification. That is a great feature if your company uses a lot of process. Sounds like to me that your a small shop and you really don't need that kind of process. I would stick with what works until you grow bigger and your needs change.

Craig
  • 1,205
  • 2
  • 21
  • 54