Switch from SVN to xxx ?

Giorgos Keramidas keramida at ceid.upatras.gr
Thu Jun 3 09:26:21 BST 2010


On Thu, 03 Jun 2010 09:43:43 +0200, Nicolas Pinault <nicolasp at aaton.com> wrote:
> Hi all,
>
> This message is sent to Bazaar and Mercurial user lists.
>
> I work in a small dev team.
>
> Long time ago, I introduced Visual Source Safe for source
> versionning. Why VSS ? Because projects which where of a concern were
> Visual Studio projects. As VSS was in the place, we also used VSS for
> other kinds of projects. But VSS is a nightmare. So, after years, I
> switched most projects to Subversion. SVN is incredibly better than
> VSS.

Hi Nicolas,

My limited experience with VSS suggests that even *no* version control
at all is better than VSS.  It's really hard to write something that
sucks more than VSS, even if you start from a bunch of BAT files that
zip everything and save numbered archives on a Windows share :-(

> I think the best is to ask to real users. Especially the ones who
> switched from SVN to Bazaar or Mercurial.  Any advice, comment... is
> welcome.

I'm going to let bazaar people answer for bazaar itself.  The rest of
this post is about Mercurial, as it's the DVCS I like most.

I like Mercurial a lot more than Subversion.  There are many reasons to
prefer working with Hg -- at least for the work I am trying to do:

  * Smaller workspace size.

    A typical checkout of the entire FreeBSD head/ branch from svn takes
    more than 1.5 GB here and you get a single snapshot of a 'mixed
    revision' workspace.  The same branch converted to Hg requires about
    500 MB for the *entire* history of FreeBSD since 1993 and its
    *default* state is not a mixer-revision copy.

    One of my posts about svn workspaces that briefly touches
    this topic is http://permalink.gmane.org/gmane.comp.version-control.mercurial.general/19750

  * Local commits

    Once you get used to committing locally and then *testing* before
    you push stuff to a central repository you feel "dirty" whenever you
    have to use a centralized SCM again.  Being able to test locally
    *before* you affect anybody else's work is a VERY good thing about
    DVCS's.

    This sort of ability is ultimately the best incentive you can have
    for instilling good practices like "test first" or "test before
    push" or "fix one bug at a time".

  * Local branches

    You can have as many local branches as you need, without having to
    "pollute" the main repository.  No more access control problems with
    the /branches tree of a single place.  No more troubles with
    convoluted permission scripts and fancy schemes for making a
    throw-away branch, hack a bit, see how things work and *then*
    publish.

    A great deal of our work as programmer is exploratory: taking new
    directions, trying things that look amusing, interesting, useful or
    even just "fun", and seeing how they work out.  Removing the
    barriers of branching for this sort of work is one of the best
    things DVCS's have done for programming since I first saw a text
    editor's buffer.

There are many other advantages of a DVCS.  You can find many of them in
the posts of this list.  You can read about some of them at our Wiki
too:

  * Ease of use.  Merging actually "makes sense" in Mercurial.  SVN's
    merge tracking smells like a fugly hack to me, and I've seen many
    developers get thoroughly confused about it.

  * Extensions.  The pluggable extension mechanism of Mercurial is
    awesome.  You can write your own plugins or use one of the dozens of
    already existing plugins:

    http://mercurial.selenic.com/wiki/CategoryExtension

  * Speed.  Mercurial can work without any sort of network access and
    out-perform *any* svn operation that requires a fast connection to
    even be possible.  The most common commands (clone/checkout, stat,
    diff, commit, log, annotate) are vastly faster in hg than svn.

  * More... I still keep finding reasons to like Mercurial after almost
    5 years of using it for all sorts of projects.  That's a pretty good
    indication that Mercurial is a very nice tool for the work I have to
    do.  You will probably find a few reasons of your own along the way.

If you do decide to switch from SVN to Mercurial, it's also worth noting
that many subscribers of the mercurial mailing list are friendly,
experienced folks.  We can help you with the mundane, mechanical parts
of the conversion process.  We can help you pick the right tools for the
conversion, and the right options to use them (many of us are already
doing svn-to-hg conversions for our own work).

So please feel free to ask anything you want about the conversion
process.  We'll try to help.

Cheers,
Giorgos




More information about the bazaar mailing list