Boost logo

Boost :

Subject: Re: [boost] [git-help] Clone / fetch specific submodule SHA?
From: Daniel James (daniel_at_[hidden])
Date: 2013-12-25 03:59:36


On 25 December 2013 04:32, Rene Rivera <grafikrobot_at_[hidden]> wrote:
>
> I don't have a local mirror.. I have nothing. Since I must assume, and
> test, the state testers are going to be of start from scratch.

You could use a local mirror for faster development, and then use a
remote server for final testing once everything else is working.

>> It can be faster to
>> implement things yourself that doesn't bother with configuration. For
>> example you can read the submodules directly from the .gitmodules
>> file, and get their details using git ls-tree:
>>
>> git config -f .gitmodules -l \
>> | grep '^submodule\.\w*\.path' \
>> | cut -d = -f2 \
>> | xargs git ls-tree HEAD
>>
>
> I've though about doing such things.. And it is something I do for the
> version of the scripts that uses Dulwich. But, alas, Dulwich chokes on the
> Boost repos.
>
> If you just want to make a copy of a repo, and don't care about git,
>> it can be quicker using git archive:
>>
>> git archive master | tar -x -C location
>>
>
> That doesn't work, and it was the first thing I tried more than a year ago
> now. "archive" doesn't recurse submodules, hence it's useless unless I
> "manually" recurse submodules.

That's why I described how to manually get the submodules' hashes.
Having a clean export is useful for the documentation build, so I
implemented it last night:

https://github.com/danieljames/boost-build-docs/commit/9cde80a5a2c248f0aa350e510392777ed029e32f

A python script could be better and faster because it can put the
output of 'git config' into a dict, and would also need to only run
'git ls-tree' once to get hashes. And also because I'm not very good
at shell scripting.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk