Boost logo

Boost :

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


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

?

> Now I'm not sure that's what you need. You will get the latest changes
> from each of the repositories, but what are the entrance criteria for
> adding something to develop or master? Does it have to compile? Do all
> the changes have unit-tests that pass?
>
> I would assume the criteria for master would be more strict that develop,
> e.g. all changes on develop for a repository have to build with the latest
> changes on all the other repositories while changes on master have to also
> pass all their unit-tests.

That can be debated. I would say that both master and develop branches should
pass unit tests for the person who committed the change.

- Volodya


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