
I'm now doing routine maintenance and development of the Boost Filesystem library via a public Git repository hosted on GitHub. See https://github.com/Beman/filesystem 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 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. --Beman