Boost logo

Boost :

Subject: Re: [boost] [git] Mercurial?
From: Joel de Guzman (joel_at_[hidden])
Date: 2012-03-27 04:52:19


On 3/27/2012 4:08 PM, Stephan Menzel wrote:
> Joel,
>
> I was following this discussion for quite some time now and didn't
> want to get involved. Just one point here.
>
> On Tue, Mar 27, 2012 at 5:57 AM, Joel de Guzman
> <joel_at_[hidden]> wrote:
>> All I want to do is to extract a modular Spirit repo from the
>> monolithic Boost repo, with the ability to easily do upstream/
>> downstream merges. But I can't do it *easily* with any of
>> the DVCS mentioned.
>
> This can be done with git submodules really well. I was actually doing
> this in a major project (the size of which outmatches boost) quite
> recently. There was a massive code base hosted in svn and I
> transitioned to bgit and at least partially I broke it down into
> submodules (using subtree by the way, which works like a charm) and
> assembled a new "main tree" out of those submodules while maintaining
> a build system that enables build, dependency management and testing
> of either seperate submodules (that pull in their dependencies) or the
> whole tree. Essentially assuming identity of "entity you can depend
> on" and "submodule". Boost strikes me as a textbook use case of this
> procedure. Especially since modularity is already inherent in the code
> base and only needs to be cast into physical form.
>
> All in all, this was incredibly cool and I enjoy working with the
> resulting system every day. The only small downside that is left is
> the fact that I haven't gotten around to automatically generating the
> main tree by parsing a dependency graph in a little python script that
> puts the right submodules in the right refs at the right places. Which
> would work nice with the git python bindings.
>
> With all this being said, the reason why I didn't bring all this up in
> this discussion is the unfortunate fact that all this is fruitless in
> large project as long as there are sentiments against it.
>
>> I guess it's back to SVN. The amount of hair pulling is the same
>> whatever D/VCS I try. Oh well...

[snip anti-git rant]

> Plus, as many have pointed out during this discussion, there are ways
> of using the power of git without going the whole nine yards. git-svn
> and friends. Even though this is just a shadow of what could be done,
> it's still a great way of actually getting folks to try it and
> therefore lose their sentiment.
>
> Cheers, and excuse my wandering slightly off topic...

Believe me, I tried git-svn as suggested in this thread. And believe
me, I want to make it work, but failed to do so, and in the process
lost a weekend which could have been better allocated for C++ coding.

Ok, I open my challenge to you and any Git/Hg fans.

Again, all I want is to:

1) Extract this modular repo structure from Boost:

   spirit
     boost
       spirit
     libs
       spirit

2) that can merge both ways (upstream and downstream
to and from the boost SVN trunk); needless to say, with all
the histories intact.

If anyone can do this and offer a way that's **actually tested**,
I'm all ears. Emphasis: I don't want to waste any more time
following dead ends! I want a procedure that's actually tested
with the Boost repo and the Spirit library in particular
(using git-svn or whatnot).

Better yet, if someone can actually put the modular repo
somewhere (github, gitorious), with specific and sane usage
instructions, then I'd immediately use that.

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