[svk-devel] Mercurial (and NOT svk) chosen as Distributed SCM for OpenSolaris... Do we "Know" the reasons for rejection?

Sam Vilain sam at vilain.net
Mon Sep 25 03:31:50 EDT 2006


F. Javier Jarava wrote:
> The thing is, I've been trying to find the reasons they had for rejecting
> svk, because I believe the objections they found would be usefult to know.
> Anybody has any leads on this?

>From http://www.opensolaris.org/jive/thread.jspa?messageID=25706&#25706,
it looks like the speed issue was the killer for them.

Why not also read my use.perl.org journal where I explain some of the
advantages git has over svk. http://use.perl.org/~mugwumpjism/journal/30615

Note that these differences will go away if somebody writes
SVK::Root::Git and associated modules. This is still basically in idea
phase, though I have done quite some work on the VCS::Git module that
would back this - and I would be glad to collaborate with anyone
interested. This may have been what CL was alluding to with "revamping
external SCM support" earlier. If SVK can use the git filesystem for
local stores, and can mirror from Git to Git and SVN to Git, then it
effectively will be able to act as a Git "porcelain" and trump git. (Git
to SVN is problematic as the feature set of Git doesn't fit into SVN's
limited repository model). This will naturally involve some evolution of
SVK's command set along the way to allow for the extra possibilities
offered by Git, but that should be a good thing overall. Interestingly,
this could potentially make the Subversion dependency optional.

I'm not versed with Mercurial or Bazaar to know what the differences are
with those yet, but I'll be catching up with Martin Pool again in
December at OSDC and hopefully get involved in some feature
raping/convergence. My limited understanding so far is that Hg is
nothing special apart from being fairly efficient and advanced, and that
Bazaar adds neat trouble tracking / feature branching and such - as
required for Launchpad etc.

Interesting that Sun went with Hg, given the problems they identified in
their review of it, such as being able to jam a repository with SIGKILL.
But I think this was the key thing for them:

(of Git): "The coding style in the C files is fairly consistent, but
comments are extremely sparse, so it can be hard to tell what's going
on, especially if some functionality is also present in shell/perl or
python files. This makes it harder for 3rd party contributors, and is
inconsistent."

(of Hg): "Mercurial is almost entirely written in Python; |hgmerge| is a
shell script, though there is some talk of rewriting it in Python, too.
It's unclear (to me) how much Python expertise there is in the
OpenSolaris community. Fortunately, Python appears easy to learn, and
the code tends to be more readable than, say, Perl. Commenting is a bit
sparse, but I haven't had problems following the code."

Standard Cathedral vs. Bazaar stuff, and also balking at the immaturity
of the git tools.

Sam.


More information about the svk-devel mailing list