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