Subject: Re: [boost] [svn/git/hg] Support for modularization of Boost?
From: Jim Bosch (talljimbo_at_[hidden])
Date: 2012-04-04 15:51:55
On 04/04/2012 12:05 PM, Dave Abrahams wrote:
> on Tue Apr 03 2012, Beman Dawes<bdawes-AT-acm.org> wrote:
>> As far as I can see, scaling Boost up to a much larger number of
>> libraries implies decentralization and decoupling, probably in the
>> form of per-library modules or something similar.
> Quite so.
>> Modularization seems to have been missed in the discussions of
>> Subversion, Git, and Mercurial. Do distributed version control systems
>> in general and Git in particular have any important
>> advantages/disadvantages over svn for highly modularized projects?
> Aside from the fact that boost is already modularized in Git, you mean?
>> Please, let's not waste everyone's time with a rehash of general DCVS
>> vs CCVS pros and cons. We have beat that to death. Let's focus this
>> thread on modularization support, particularly as it applies to Boost.
> Well, let's see... I guess *if* you want to treat modules as
> sub-modules, Git is a bit more flexible than SVN in that you have both
> submodules (roughly like svn externals) and git-subtree (in the next
> release of Git, or a separate add-on until then), so you can choose your
> However, I don't think we're (mostly) going to be using either of those
> technologies. Instead, I believe we'll be using 0install to manage the
> interactions of related library versions, which will render most such
> questions moot. A library developer will (mostly) be working with only
> one repository at a time, and the dependency management system in
> 0install will take care of acquiring the others.
If things get to this stage - and I certainly hope they do - it seems
the most important remaining question for version control systems re
modularization is how easy it easy to transfer content (*and* associated
history) between different the repositories as the boundaries of
libraries shift or utility code is shared between them.
My experience is that this works very well in git with the big caveat
that the invocations to do it are pretty complex and frankly
scary-looking to novices. But if I copy and paste what Stack Overflow
tells me to do, it does exactly what I want.
I can't speak knowledgeably of either Mercurial or SVN on this topic.