Why not Subversion + DVCS of Choice?

A follow-up to my last post on DVCSes…

Gnomers have been discussing DVCSes a lot lately, and at least one seems to prefer bzr as the repository format and git as the protocol it speaks. If this sounds like madness to you, you’re not alone.

What I don’t understand is why more people don’t choose to keep Subversion as their repository and just use the $DVCS-svn of your choice?

Granted I’ve only used bzr-svn a bit, but it worked quite well and seems to only be getting better. I hear git-svn is quite good as well (but iirc hg lags behind the competition).

The benefits of this seem pretty nice:

  • Repository and Project management tools could get by with only first class Subversion support.
  • Directing inexperienced users to download code would be standardized.
  • Linux distributions wouldn’t have to ship 5 different VCSes (cvs, svn, git, bzr, hg), although the VCSes don’t take up much space.
  • Developers could use whichever tool they preferred, publish branches to any one of the zillions of free hosts for their DVCS of choice, and get on with their life.

Answering my own question…

The obvious counter argument is that in order to share code you either:

  • …force everyone who cares to use your DVCS.
  • …or lose some of the benefits of your chosen DVCS and share code via a SVN branch.

Lets face it, both options are a pretty big hassle for developers. Comprises always are.

For smaller single projects the overhead associated with going this route probably isn’t worth it. You’ll probably either end up losing 75% of what makes a DVCS handy or just use SVN.

Why is Gnome not considering this option though?

This option seems ideal for projects like Gnome. Individual modules will probably adopt a preferred DVCS, and thats fine. None of them are so different that a competent developer couldn’t yank some revisions from an unfamiliar DVCS.

The project as a whole (and individual modules) would continue to remain uniformly easily available through a single svn checkout.

At the very least isn’t this better (at least saner) than bolting git onto bzr’s repository format?

Audience Participation

I’m not a Gnome developer though. Just a curious user. However, as a fellow developer I am left wondering: why isn’t this a good option? Are $DVCS-svn connectors just not good enough? Are the comprises too great? Or the most likely: am I just missing some obvious showstopper?

This entry was posted in Open Source, Technology and tagged , , , , , . Bookmark the permalink.
  • http://blogs.gnome.org/johncarr John Carr

    I need a whiteboard for this…

    On the left we have the server, on the right the client.

    bzr and bzr+git just bzr or just git (no weird plugins)

    svn git + git+svn or bzr + bzr-svn

    They are the same idea, but by putting the mapping on the server side we reducing the failure points. Its better to use the Bazaar repository because it is closer to Gits and the mapping will be simpler.

    In summary, if my idea sounds crazy, carrying on using SVN whilst encouraging $(dvcs)-svn is crazy. A lot of the people who bashed the idea are bashing it because they think it will be as bad as carrying on using SVN.

    If people really really want SVN, they only need to ask. I’m quite interested in finishing the SVN server in bzr-svn too.

  • http://blogs.gnome.org/johncarr John Carr

    Bah. It ate the ascii art :(

  • http://michael.susens-schurter.com/blog/ Michael Schurter

    @John Carr: Thanks for commenting and sorry WordPress eats formatting. I guess it only seems like madness to me because $dvcs-svn already exists, whereas building servers on top of bzr’s repository format doesn’t. So part of my skepticism is just being overly conservative about things like this, but if the concept doesn’t catch on outside Gnome you have a long lonely road of maintainership ahead of you.

    Also just let me say thanks for all your contributions to Gnome! I’m one of the lazy jerks that just sits back, reaps the rewards, and bitches about the bugs. Hopefully someday I’ll graduate from part-time-bug-submitter to something a bit more beneficial. :)

  • http://blogs.gnome.org/johncarr John Carr

    @Michael Schurter: Thanks!

    I agree with your reasoning, its less madness for me because i’m already quite familiar with git internals from other work and I can help normal bzr-git development and the dulwich project all at the same time.

    And because i’m building on a lot of dulwich, bzr-git and bazaar code, theres only about 140 lines of code specific to this idea to maintain even if it doesnt work out.