
on Thu Feb 09 2012, Tim Blechmann <tim-AT-klingt.org> wrote:
I am interested in your views here. I have had good success with git and monolithic projects. How would you go about working on your library and then pushing to the central repo. Would you envision that the central repo is nothing more than a shell pointing to submodules that are the "real" library repos?
the semantics of git submodules is a bit weird: if you check out a new revision of the top-level repository, the submodules won't be updated automatically, but you need to run `git submodules update' manually ... i am using submodules for tracking some external dependencies and in my experience 70% of the compile failures of my users are related to submodules getting out of sync.
for a project like boost, i'd therefore suggest to avoid submodules. the advantage however is that the full git repository of boost is few hundred mb ...
We don't need to use submodules. /Maybe/ the people who are packaging integrated boost releases (i.e. the release team) might want to use them as a way of recording an integration state, but most Boost developers and users should never need to touch them. Instead, we want to use an installation system like 0install to gather a library's dependencies and make them available to the build system. -- Dave Abrahams BoostPro Computing http://www.boostpro.com