Boost logo

Boost :

Subject: Re: [boost] [git] Mercurial?
From: Joel de Guzman (joel_at_[hidden])
Date: 2012-03-20 22:56:01


On 3/21/2012 8:41 AM, Edward Diener wrote:
> On 3/20/2012 7:03 AM, Julian Gonggrijp wrote:
> ... snip
>>
>> Well, allow me to present some fair reasoning to you.
>>
>> With regard to git versus svn: I think enough fair reasons have been
>> given why git (or a DVCS in general) is better than svn. I'm not
>> going to repeat those arguments here.
>
> I have never heard a single technical argument, in all the endless mentions of Git among
> the people riding that bandwagon, why Git is better than SVN, or even why any DVCS is
> better than a centralized SCCS. I consider this whole move to Git and/or DVCS among "hip"
> programmers little more than a move to conform with what others are doing and feel "cool".
>
> I am perfectly willing to read well-chosen technical arguments but not from people already
> sold on one side or the other. But I really despair of anyone being able to present such
> arguments in the atmosphere created by Git fanatics and DVCS fanatics. The only thing I
> have gotten from all this is "I've tried it, I like it, and therefore its superior".
>
> Feel free, anyone, to point me to a purely technical discussion, article, whatnot,
> explaining the practical reasons why using a DVCS, or Git, is more productive and more
> pleasurable than using a centralized SCCS like Subversion.

I'm not a Git, or DVCS fanatic. I'll just use whatever tool required
to get the job done. I'm OK with SVN. It works. If you read my previous
comments on this topic (from last year when this was heavily discussed),
you'll see that I question the Git move. To me, and I mentioned this
before: "A Good Craftsman Never Blames His Tools". I know a very good
luthier who craft world-class guitars using only a pocket knife. And I
take that to heart with crafting code as well. I find it funny when
people blame SVN, the C++ compiler, etc, etc, for inadequacies in order
to flaunt these new shiny tools (Git, Java in the 90s or name-your-new-
compiler-here).

That is to say, I am not among the "hip". I tend to use the simplest of
tools: the most basic text editor and a decent compiler, at the very
least.

Having presented my neutrality, let me present a case *FOR* DVCS...

>From the beginning, Spirit had it's own community, mildly detached
from Boost. Spirit contributors come and go. We once develop code
using SourceForge (using CVS, then SVN). I give contributors
write access as needed. Once, stable, I move or merge the code
to Boost. It so happens that we had a more frequent release cycle
than Boost (at the time). Each move was soo frustratingly difficult
and time consuming (not to mention that I lose and never bothered
about the commit histories when moving code to Boost from SF; it
just was not worth the hassle. After all, SF was the master with
all the histories and the one in Boost was just a copy).

That was fine, but there was something in Boost that we need:
regular testing by multiple people on different platforms and
compilers. At one point, because of that need, we stopped using
SF and finally moved to Boost for development. One drawback that
I sorely miss from being independent from Boost is the right to
give write access. Now, whenever a new contributor comes along,
I have to ask permission from the Boost-Owners for write access
to the Boost repo. And, a write access privs gives everyone access
to the whole boost repo, instead of being limited to Spirit only.
Also, I often wondered about past Spirit-devs who are inactive now.
They still have write access, but I just let them be. Not being
in control is a major disadvantage for me. It's my library and I
want to have more control.

What I want is to have a system where I can decouple Spirit from
the Boost central repository again. I want to regain the right to
give Spirit developers write access to this decoupled repository.
I want Spirit-devs to develop code, create branches, etc. in
this repository. I want to be able to commit upstream into the
Boost repo on a regular basis and thus take advantage of Boost
testing. I want the commit histories of my upstream merge be
intact on all moves and merges.

It is obvious to me now that what Spirit needs is DVCS. I
don't care which (Git or Hg). I tried both on my own
and I find both satisfactory to my minimal needs.

I can certainly craft something using a pocket knife and a
chisel, but I certainly wouldn't mind a dremel power tool :-)

(PS. I tried Git-SVN and hgsubversion without luck. I simply
can't get them to work. I'm guessing that these facilities are
not well supported. In my experience, they simply bork out when
I try to clone the Boost repository)

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://boost-spirit.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk