On Wed, Dec 4, 2013 at 12:06 PM, Vladimir Prus
On 04.12.2013 11:32, Andrey Semashev wrote:
I just checked out the super-project:
git clone --recursive http://github.com/boostorg/boost.git modular-boost
It actually said:
Submodule path 'libs/program_options': checked out 'fb4f36f3eecbef1e3b4ace5b263e01d56e42d5c7'
But after these commands I saw the newer revisions:
cd modular-boost/libs/program_options git checkout master Switched to branch 'master'
git log -1 commit 9d7c9875265ec7fec03aabf18e3d53c3e5e1a46c Author: Vladimir Prus
Date: Wed Dec 4 09:17:17 2013 +0400 Remove tabs.
I'm not sure what the "Submodule" line means, but it seems the repository is cloned with the newer revisions.
That's because git does complete repository clone. But then, it checks out the revision specified for each submodule (see 'git ls-tree master:libs' the the exact specification). I don't think it can automatically checkout symbolic reference (such as 'master'), so either we need to document things like 'git submodule foreach' use, or use some scripting to update submodule references periodically.
man git-submodule says that the submodule involves something called "gitlink", which refers to the particular revision. I don't know what this is but is it possible to specify HEAD instead of the specific revisions in gitlinks? If that is possible then git clone -b master --recursive http://github.com/boostorg/boost.git modular-boost would probably do what is expected?