A Comparison of TFS vs Subversion for Open Source Projects

We’ve been having an internal debate within the Subtext mailing list over the merits of SourceForge vs Google Code Project Hosting vs Codeplex. Much of the discussion hinges around the benefits of Subversion for Open Source projects when compared to Team Foundation System (TFS).

Before I begin, I do not mean for this to devolve into a religious argument. This is merely my critique from the perspective of running an Open Source project. I personally think both are fine products and both probably work equally well in the corporate environment.

TFS Advantages

  • Easy of use. For developers with a background in using Visual Source Safe or Sourcegear Vault, the interface into TFS will be familiar. Subversion requires more of a learning curve for these developers, though this is mitigated by my suspicion that a large percentage of Open Source developers tend to use CVS and SVN already. 
  • Work Item integration is sweet. I’ve been contributing some code to the Subsonic project and I actually love the work item integration in VS.NET. It’s pretty nice to be able to review and close work items while working on the code.
  • Shelving is great. Certainly nothing stops you from doing something like this in Subversion by using conventions, but I like the syntactic workflow sugar this provides.

Subversion Advantages

  • Anonymous access. Users who want to look at the code, view the change history of the code, and update their local code to the latest version can do so form the convenience of their favorite Subversion client. This is much more cumbersome with TFS.
  • Patch Submission. This goes hand in hand with anonymous access. Users without commit access can have Subversion generate patch files consisting of their changes and submit these files. This makes it really easy for the casual contributor to quickly submit a patch as well as makes it easy for the Open Source development team to apply contributions to the source. This is a huge benefit to the project. Unfortunately with CodePlex, you either give commit access or you don’t. If you don’t, it’s a pain for users to submit patches and a pain for the project team to apply patches. Just ask Rob Conery what happens if you give commit access too freely.
  • Offline Support. Regardless of what Jeff says, offline mode does matter for many applications. For example, sometimes I have to connect to an obnoxious VPN that destroys my general internet connectivity. It’s nice to be able to connect, get latest, disconnect, work, connect, commit changes, disconnect. Try that with TFS.

Again, as source control systems, I believe they are both great systems. But for the needs of an open source project, I feel that Subversion has advantages. As far as I understand, TFS was designed as an enterprise source control system. However, the needs of the enterprise are often different from the needs of an Open Source team.

Subversion, itself open source, was used during its own development (when it became stable enough). So it is well suited to open source development.

If Codeplex supported Subversion, I would probably want to move Subtext over in a heartbeat. If you feel the same way I do, please vote for the work item entitled Subversion Support (SVN).

It looks like a lot of people would like to see this as well as it is the top vote getter on the Codeplex work item site.

And before you rail on me asking, Why Microsoft would ever consider such a move? Isn't Codeplex a showcase for TFS and Microsoft Technology Open Source projects?

A member of the Codeplex team informed me that Codeplex is the home for any Open Source project - on any and all platforms. In fact, they do now host a few non-Microsoft projects. Of course their dependency on TFS does naturally limit the types of projects that would host there.

What others have said

Requesting Gravatar... Rob Conery Mar 02, 2007 7:36 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
The PATCH issue really sucks - I get a lot of code thrown to me that I have to sift through and see what's changed. Unless it's commented severely (so I knows where to goes) then it's just about unusable to me.

Often I get 2Mb project files in my email with "I made some bugfixes - here ya go". Don't get me wrong - I really do appreciate the love flowin here but I just don't have the time to DIFF on the fly :).

That said, the tradeoff of the voting system on the Work Item list is pretty swingin - let's me know what people are thinking and has the added effect of decreasing duplicate reports.

The Wiki feature really helps with creating docs - but then only the Devs can do that which is a PITA. The Commit-access thing is not easy!

Finally - SourceForge is really a tired horse (in my mind) and I heard somewhere that their forums are "Garbage" :).
Requesting Gravatar... Wyatt Barnett Mar 02, 2007 8:13 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
On that obnoxious VPN killing internet connectivity--you are unchecking the box that says "use this PPPTP connection as my default gateway" buried deep under the advanced settings of said VPN connection, right?
Requesting Gravatar... Haacked Mar 02, 2007 8:18 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
Yes, but sometimes I have to use some crazy VPN clients that don't support that like SonicWall, AT&T Dialer.

Also many VPN clients don't work on Vista, so I have use another machine to get the code, then work on it on my Vista box, then shuttle the code back.
Requesting Gravatar... Jeff Atwood Mar 02, 2007 6:24 PM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> Just ask Rob Conery what happens if you give commit access too freely.

I would like a more complete blog entry on this from Rob. What's the alternative? Keeping the peons outside the castle walls and forcing them to send you patches?

> If Codeplex supported Subversion,

This will never, ever happen. It's an architectural impossibility. Seriously.

Source control is the heart of TFS, and once you ditch that, work items, build, and everything else lose the "glue" that was holding the system together.

> Users who want to look at the code, view the change history of the code, and update their local code to the latest version can do so form the convenience of their favorite Subversion client.

Doesn't codeplex let users browse the source code repository from the browser?

> I just don't have the time to DIFF on the fly

Really? Diff and patch generation is a one click operation in Beyond Compare.
Requesting Gravatar... Haacked Mar 03, 2007 6:58 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> This will never, ever happen. It's an architectural
> impossibility. Seriously.

Creative solutions are always possible.

> Doesn't codeplex let users browse the source code
> repository from the browser?

It's not the same. While in the midst of developing, I can't just right click on a file and get a history of its checkins to understand why it is the way it is. Working with SVN with anonymous access is just like working with commit access except for one feature, the ability to commit.
Requesting Gravatar... Ayende Rahien Mar 03, 2007 7:20 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> Just ask Rob Conery what happens if you give commit access too freely.

I sense a story that I am not familiar here, what are the details?

@Jeff,
I want a _live_ source, which mean that I can do look at the history, move between revisions, etc.
Getting a code dump is something that isn't really useful.
Not having a way to send a patch is a killer, period.
It raises the bar for developers who wish to contribute to the project, and it raises the bar for the commiters on the project.
As Rob just said, if you get a 2Mb project, you have to do a lot more work to find out what have changed.

>What's the alternative? Keeping the peons outside the castle walls and forcing them to send you patches?

Um, yes?
That is the way that 90% of the OSS projects are being run. You don't get commit rights just because you are want to.
You send a patch to the commiters, and if they like it, they commit it.
Requesting Gravatar... Jeff Atwood Mar 03, 2007 8:23 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> Creative solutions are always possible.

In this case that creative solution is to not use codeplex..

On the other hand, you absolutely should be able to add users as read-only on a project. This is totally possible in TFS; no idea why they haven't exposed it yet. They could even emulate anonymous access by providing a generic read-only login for people to use (there is no concept of truly anonymous access in TFS, everyone is a named user in Active Directory).

That's what you guys need to be voting up, not tilting at this subversion windmill.
Requesting Gravatar... Jonathan Wanagel Mar 03, 2007 9:01 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> On the other hand, you absolutely should be
> able to add users as read-only on a project.
> This is totally possible in TFS; no idea why
> they haven't exposed it yet. They could even
> emulate anonymous access by providing a
> generic read-only login for people to use

We tried granting all users read-only access to all projects, and the TFS server fell over because its security subsystem can't handle that many security permissions. So we need to limit the number of users with security permissions on the server to keep it running.

We also thought of the idea of providing a generic read-only login for people to use, but we can't do it because of security issues. Since a users workspace is stored on the server, anybody would be able to view and modify any workspaces associated with the login giving the potential to modify another users workspace and cause them to overwrite files or folders in any location on their hard drive on their next Get Latest Version.

However I guarantee you that we are listening and determined to address user requests. Users votes have been great to let us know what we need to focus on.
Requesting Gravatar... Haacked Mar 03, 2007 9:29 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> That's what you guys need to be voting up,
> not tilting at this subversion windmill.

Jeff, look. The point of this post was to point out that TFS is not an ideal source control system for open source projects.

Fine, let's take Subversion off the table for a moment. Let's say we just want Codeplex to support the issues I raised. Can it using TFS? Jonathan's comment seems to imply it can't. It cannot scale at that level.

CodePlex was not intended to be a showcase for TFS. It's intended to be the home for Open Source projects. That's coming straight from the CodePlex team.

So why shouldn't we point out that Subversion would be a great addition to Codeplex because it already solves these problems, from the very start? It was designed from the beginning to be good at Open Source development because it itself is Open Source.

Sure, we won't get the TFS integration with work items. Frankly, I'll be happy to give that up. They could implement work items using a simple database store and keep voting and Codeplex would still kick butt.

As I see it, CodePlex is a product. It has almost everything I want in such a product, except for these few things. To say, well they use TFS and TFS can't handle it so go somewhere else is ludicrous. Can you imagine telling a customer of any product that?

If your choice of technology can't handle your user scenario, it may be time to re-evaluate that technology choice.

Requesting Gravatar... Patrick V Mar 03, 2007 11:21 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
We were going with TFS for a while. Had it setup on a test version of the software. After using it for a few months, we realized that it is overkill for a source control system. Granted, it does what five open source programs are necessary to do, but those open source programs do a better job.

Recently, we went to Subversion and Trac. We couldn't be happier.

Phil, have you looked at http://www.devjavu.com for hosting your project? Jeff Lindsay has created a really great product over there.
Requesting Gravatar... Haacked Mar 03, 2007 4:53 PM
# re: A Comparison of TFS vs Subversion for Open Source Projects
>> I just don't have the time to DIFF on the fly`
> Really? Diff and patch generation is a one click
> operation in Beyond Compare.

Really? So somehow Beyond Compare will know about the file and folder renames and deletions and apply that in the patch?
Requesting Gravatar... Jeff Atwood Mar 03, 2007 7:36 PM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> somehow Beyond Compare will know about the file and folder renames and deletions and apply that in the patch

I want to go deeper: why can't you give people who want it commit access? Isn't that the very POINT of source control? Why keep the peons locked outside the castle and force them to submit patches?

I definitely see the utility for casual developers, who will be "one hit wonders" submitting a single patch and never participating in the project ever again.

> CodePlex was not intended to be a showcase for TFS. It's intended to be the home for Open Source projects. That's coming straight from the CodePlex team.

They say that, but I honestly don't believe them. Actions speak louder than words, so if they drop TFS and switch to a Trac-like system, then you'll be right.

If they don't, then I'm right.

Basically you have to wait for TFS to get the featureset you need on CodePlex. So post-Orcas (Orcas is an "adoption" release for Team System, with no breaking changes except in Build), which is God knows when.

Or maybe you're less cynical than I am, but I'd put large sums of money on my predicted outcome, eg, this is just how Microsoft works.

> Can you imagine telling a customer of any product that?

Yes, you should demand a refund immediately. Here's your nothing back.
Requesting Gravatar... Jason Haley Mar 03, 2007 11:21 PM
# Interesting Finds: March 4, 2007
Requesting Gravatar... Haacked Mar 04, 2007 4:26 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
The book Producing Open Source Software has a chapter on this topic that probably does the topic more justice than I can.

I'll just add my two cents. Ideally, when you pull from the trunk or a branch of a project, it is as stable as can possibly be given that it's active development.

If you give committ access to developers who do not make good decisions, there's the potential that the code is left in a bad state until someone has time to review the code.

Look at it this way, you don't just give anyone at Vertigo commit access. You have to interview them and make them an employee first. Open Source projects aren't much different in that regard.
Requesting Gravatar... Jonathan Wanagel Mar 04, 2007 4:28 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> I'd put large sums of money on my predicted
> outcome, eg, this is just how Microsoft
> works.

How large of sum are you talking here? :-)

Seriously though, we are not going to wait years to respond to the requests of CodePlex users.
Requesting Gravatar... Andy Stopford Mar 04, 2007 6:24 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
I'd like to address Jeff's question about patches etc. First off source code on all OSS projects is freely available to get from SVN\CVS. Nothing to hide there and everyone can take a look, fix a bug or add a feature etc. The reason why the process to submit that back needs to be a patch or file is pure QA. The project admins don't know a new commiter and (with respect to the commiter) cannot be sure of the quality of the commit or that it meets any quality standards of the project. As such new commiters build up a level of trust the more code they send in. I don't feel that this effects organic growth of write access, it's just a step to maintain quality in the code and most folks who commit code often quickly get write access.
Requesting Gravatar... Haacked Mar 04, 2007 7:08 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> Yes, you should demand a refund immediately. Here's
> your nothing back.

Let me rephrase my question. Suppose you build a product to serve a particular constituency of users. You find that the technology you based your product on cannot scale to meet the demands of that constituency. Not only that, the technology you've chosen architecturally can't meet several essential needs of this community.

Do you abandon that community? Or do you abandon the technology?
Requesting Gravatar... Rob Conery Mar 04, 2007 8:09 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
Guess I need to detail out my CodePlex fun :). Happy to - just be nice to me :).
Requesting Gravatar... Scott Mar 05, 2007 1:03 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
"there is no concept of truly anonymous access in TFS, everyone is a named user in Active Directory"

Jeez, talk about not being able to see the forest for the trees. That's a big AD forest.

"CodePlex was not intended to be a showcase for TFS. It's intended to be the home for Open Source projects. That's coming straight from the CodePlex team."

I have your bridge Mr. Haack. Did you order the Brooklyn or Golden Gate? ;)

If CodePlex is meant to be the home for OSS, why use TFS at all? The project team setup and dynamics on OSS projects is completely different than the enterprise team dynamics that TFS is meant to work with. My opinion is that every public facing web site that Microsoft puts up is a showcase for their technology. Codeplex is no different. It's a little like saying you can have your Model-T car in any color you want, provided you want it in black.
Requesting Gravatar... Haacked Mar 05, 2007 1:14 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
> I have your bridge Mr. Haack. Did you order the
> Brooklyn or Golden Gate? ;)

I'll take both!

> If CodePlex is meant to be the home for OSS, why
> use TFS at all?

I can only speculate on this, not knowing for sure. But Microsoft has a tendency to use Microsoft software for its online properties. In part, I think this is a good thing as part of their culture of "dogfooding" their own code.

TFS is much better than Visual Source Safe so why not try it to get a jump on building an open source platform by using it?

Despite the critique I wrote, there are a lot of benefits of using TFS.

But choice of technology doesn't necessarily equate to showcase for that technology. For example, my company originally chose DNN for our website. That doesn't mean we were showcasing DNN. And when DNN proved overkill for our needs, we ripped it out (though we still use it for our tools site which is more appropriate to our needs).

I think there is precedent for Microsoft choosing the right technology for the right market. Why doesn't the Zune use Windows Mobile? It was a conscious decision, noting that for this particular market, it was more important to use the right technology (whatever that may be) than try to showcase any particular Windows technology.
Requesting Gravatar... Kevin Dente Mar 05, 2007 3:10 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
>I think there is precedent for
>Microsoft choosing the right technology
>for the right market.

Um..didn't they just choose (or rather, build) a different Microsoft technology? Seems like a bit of a stretch to conclude that MS might adopt an open-source VCS from that example.

Microsoft seems to pretty much epitomize NIH syndrome. I have to say I'm with Jeff on this one. I think it'll be a cold day in hell before Codeplex offers SVN hosting. Maybe, MAYBE, if they turn it into a profit center, but I haven't seen much sign of them trying to monetize Codeplex.

Codeplex may not be a "showcase" for TFS. But it could very well be a proving ground for it. Helping them shake out scalability issues and explore the limits of the engine. It's certainly a faster way to get a large active user base than selling into enterprises.

Requesting Gravatar... Haacked Mar 05, 2007 3:25 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
I'm too much of an optimist for my own good. ;)

But to clarify, if TFS could address the issues I brought up, then it wouldn't matter to me if they offered SVN hosting or not.

In the end, I care less about the technology under the hood and more about whether the platform can do what I need it to do.

I'm only pushing SVN because it offers all these things now. It's theoretically possible that TFS could be updated to offer these things, but it sounds like that would require some deep architectural changes.

Not only that, why would Microsoft try and make TFS a good source control system for OSS development? That doesn't seem to be its target market. I'm not saying meeting the needs of an Enterprise market is necessarily at odds with OSS (I think SVN targets the enterprise market well), I just think that the dogfooding aspect of SVN's development style (the fact that it is developed via OSS) gives it an edge up in addressing the needs of the OSS community.

As I told Jeff in an IM conversation, if we could place a wager on this, I'd put a large bet that they never adopt SVN. However, I'd also hedge my bet by placing a tiny amount that they do. Since it's such a longshot, it'd be a nice payola if it worked out! ;)
Requesting Gravatar... Haacked Mar 05, 2007 3:31 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
Couple more thoughts.

> Maybe, MAYBE, if they turn it into a profit center.

Might be easier to do that if they can scale out more. I assume SourceForge is profitable. At least enough to stay in business.

I just looked on the SourceForge site and they mentioned that TortoiseSVN reached 4 million downloads. That's just one of several Subversion clients. Very cool.

Finally, Rob Conery responded with his story on this topic, since I called him out without warning. ;)
Requesting Gravatar... Kevin Dente Mar 05, 2007 4:11 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
>Not only that, why would Microsoft try
>and make TFS a good source control
>system for OSS development?

In this day of distributed development teams, virtual offices, telecommuting, and outsourcing, there's actually some pretty good reasons for them to do just that. One of the reasons we recently selected Subversion over TFS was its superior handling of disconnected workers.
Requesting Gravatar... Jay Flowers Mar 06, 2007 6:58 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
Phil,
You mention how you like Work Item Tracking's (WIT) integration into the flow. You can achieve a similar result with build server automation.
You have some sort of Ticket Tracking System. I imagine that it is automatible. If you were to include the ticket number(s) in the commit comment, log message, what every you wanna call it; you can then extract them in the build process and move the ticket onto test or where ever.

It my work we use PVCS Tracker and the CI Factory Tracker Package for this. The build script can add all sorts of info to the Ticket that is a pain to do manually.

Smiles,
Jay
Requesting Gravatar... Haacked Mar 06, 2007 7:48 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
Thanks for the tip Jay. Right now, we're using SourceForge for ticket tracking. I'm not aware of any easy way to integrate with SF.

Maybe we'd be better off using a real ticket tracker, but then our project information is even more disjointed (Website here, forums there, issues over there).
Requesting Gravatar... Steve Mar 08, 2007 9:03 PM
# re: A Comparison of TFS vs Subversion for Open Source Projects
This site below list in detail
TFS vs SubVersion (open source)
http://tfs.techboo.com/archive/2006/11/20/9.aspx
Requesting Gravatar... Daniel Mar 27, 2007 1:25 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
My company is also comparing TFS to Subversion. We've been using Subversion successfully on some projects for about a year. But, the big advantage that we see in TFS is that it's an integrated "all-in-one":
it does bug tracking, reporting, assigns work, etc....all under one roof. Specifically, the integration of Sharepoint, Project Server, and Portfolio server.

So, with that in mind, I wanted to know what people thought of TFS compared to Subversion with Collab.Net, Roundup, Jira, or Trac.

Can Subversion with one of those packages compete, or is something like Clear Case with Rational Suite more of a direct competitor to TFS?
Requesting Gravatar... you've been HAACKED May 21, 2007 6:39 AM
# CodePlex To Roll Out TortoiseSVN Support
CodePlex To Roll Out TortoiseSVN Support
Requesting Gravatar... Community Blogs May 21, 2007 7:01 AM
# CodePlex To Roll Out TortoiseSVN Support
This just in. CodePlex is planning to roll out TortoiseSVN support! A little while ago I wrote a comparison
Requesting Gravatar... Scott Mar 26, 2008 2:32 PM
# re: A Comparison of TFS vs Subversion for Open Source Projects
For those following this thread you should consider evaluating SharpForge.

It's a modern implementation of SourceForge with Subversion for source control. Some key benefits include, a Subversion backed wiki, svn commit/work item integration, threaded forum discussions, role based access controls, plugin architecture and much more.
Requesting Gravatar... Joshka Sep 25, 2008 1:36 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
FYI
blogs.msdn.com/.../...support-for-tortoisesvn.aspx
Requesting Gravatar... Dan Jan 12, 2011 6:54 PM
# re: A Comparison of TFS vs Subversion for Open Source Projects
Subversion because:

TFS isn't just source control it's a different animal
TFS is Microsoft, SVN is not.
TFS Only works in VS, SVN works anywhere, even on your microwave.
TFS costs £500 a user, SVN is free
TFS required training $'s, SVN is free
Requesting Gravatar... Russell May 10, 2011 7:56 AM
# re: A Comparison of TFS vs Subversion for Open Source Projects
TFS is awesome!! have been using it now in 2 fortune 500 companies on large projects.
It just rocks.
"Free" is not free. Get your facts straight.
TFS now has a very large following, tons of community & tools, and integration for most IDE's ( VS, Eclipse, IntelliJ,etc). Has commandline for linux & mac also.

It's the bomb baby! This is what "real" integrated tools look like.
And the API set is sooo nice.

What do you have to say?

(will show your gravatar)
Please add 1 and 2 and type the answer here: