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:


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.


Joel de Guzman

Boost list run by bdawes at, gregod at, cpdaniel at, john at