
On Feb 13, 2011, at 11:15 AM, Beman Dawes wrote:
I'm now doing routine maintenance and development of the Boost Filesystem library via a public Git repository hosted on GitHub.
Excellent! I will create a Boost.Defrag module for your git repository.
Daniel Pfeifer: "On the boost-dev list, Dave suggested to "call this something else, that includes a reference to the word 'modularized' somehow, just to distinguish it from the several unmodularized boost-cmakes".
The term 'module' however, already has a meaning in the CMake context (as in 'Standard CMake Modules' in the CMake documentation). So I thought we might label the Boost components/modules as 'fragments'.
The Boost.Defrag project is used to put these fragments together, hence the name."
The point of this public repo is to gain actual use experience with Git and with a modularized Boost library. Modularization followed the pattern ryppl is proposing - the top level directory is the same as the current SVN list/filesystem, with the addition an "include" directory with a "boost" sub-directory containing the current SVN boost/filesystem stuff. None of the existing filesystem content was changed.
So that the development environment will be identical to the current SVN trunk, I setup my local filesystem trunk repository using a little script:
svn export %BOOST_TRUNK% fs-trunk cd fs-trunk/libs rm -r filesystem git clone git@github.com:Beman/filesystem.git filesystem cd ..\boost del filesystem.hpp rm -r filesystem mklink filesystem.hpp ..\libs\filesystem\include\boost\filesystem.hpp mklink /d filesystem ..\libs\filesystem\include\boost\filesystem
The effect is to export the SVN trunk, then replace libs/filesystem with a git clone of the public repository. boost/filesystem is replaced with a symlink to libs\filesystem\include\boost\filesystem
This is almost exactly what I was proposing earlier, with the exception that your script would be handled by bjam.
Note that no changes whatsoever needed to be made to either my Visual Studio or Boost.Build setups, Jamfiles, or anything else. Everything just works.
The setup is a pleasure to use. I commit changes locally whenever it makes sense, without any need to maintain stability. Then when work reaches a stable state, I push it out to GitHub.
When it comes time to apply the changes to the Boost repo, I'm applying the diffs locally and then committing. If Boost were using Git, I'd send a "pull" request.
So far this whole experiment has been very reassuring. No problems and everything worked instantly. There was almost no learning curve, since I'd already been using Git and GitHub for awhile.
I am new to git (this week) and must say that I concur with your experience.
--Beman _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost