Boost logo

Boost :

Subject: Re: [boost] Git: maintaining super-project
From: Vladimir Prus (ghost_at_[hidden])
Date: 2013-12-04 04:15:14


On 04.12.2013 12:53, Bjørn Roald wrote:
> On 12/04/2013 08:39 AM, Vladimir Prus wrote:
>> On 04.12.2013 11:27, Cox, Michael wrote:
>>> On Tue, Dec 3, 2013 at 11:35 PM, Vladimir Prus <ghost_at_[hidden]> wrote:
>>>
>>>> On 04.12.2013 10:28, Vladimir Prus wrote:
>>>>
>>>> As far as I understand, you don't have to create pull requests for
>>>>>> master and develop branches. The actual revision is pulled from
>>>>>> submodules automatically as you check out the monolithic boost (the
>>>>>> boostorg superproject). The pull requests might be needed during the
>>>>>> release cycle, if you want specific last minute changes pulled by the
>>>>>> release managers so that they get into release.
>>>>>>
>>>>>
>>>>> Well, the superproject has references to specific revisions of each
>>>>> component. Or am I mistaken
>>>>> on this part?
>>>>>
>>>>
>>>> Looks like I'm not. I did this:
>>>>
>>>> ghost_at_solid:~/Sources/boost-modular$ git checkout master
>>>> M libs/program_options
>>>> Switched to branch 'master'
>>>> ghost_at_solid:~/Sources/boost-modular$ git submodule update
>>>> --init
>>>> Submodule path 'libs/program_options': checked out '
>>>> fb4f36f3eecbef1e3b4ace5b263e01d56e42d5c7'
>>>>
>>>> This revision being checked out is what the current superproject repo
>>>> specifies, which is 2 commits
>>>> behind master of boostorg/program_options library.
>>>>
>>>> So, yes, without pull request, or manual updates, or some scripting,
>>>> checking out the superproject
>>>> will not get either 'master' or 'develop' state of all libraries.
>>>
>>> The following should get you what your asking for, if I understand you
>>> correctly:
>>>
>>> git clone --recursive -b develop https://github.com/boostorg/boost
>>
>> Let's assume that I've already did this, and others checked in more
>> changes,
>> in which case...
>>
>>> git submodule foreach git checkout develop
>>
>> ... this command won't be sufficient, as you'd something like:
>>
>> git submodule foreach git fetch
>>
>> ?
>
> I am probably confused as what you are trying to do,but I would simply do.
>
> git checkout master
> git submodule update
> ... everything is master (svn branches/release)

Uhm, no. Everything is detached head corresponding to submodule references in superproject.

Which means, again, that whatever I put to 'master' of my library is not ending up as part
of regression tests, or next release, unless I also do additional dance, which is inconvenient
for me, and extra work for those with write access to 'boost' superproject.

- Volodya


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