Managing openbmc with subtree

Dave Cobbley david.j.cobbley at linux.intel.com
Fri Jul 20 06:08:04 AEST 2018


Brad,
Trying to identify the appropriate work-flowfor using git subtree to 
maintain all the meta-data under openbmc.
I'm imagining something like:

17 subtrees
** indicates an actual folder, not subtree.
meta-openembedded/
meta-raspberrypi/
meta-virtualization/
poky/
**meta-openbmc-machines/
** meta-arm
    ├── common
    └── meta-qualcomm
**meta-evb
    ├── meta-evb-aspeed
    ├── meta-evb-nuvoton
    ├── meta-evb-raspberrypi
**meta-openpower
    ├── meta-ibm
    ├── meta-ingrasys
    ├── meta-inventec
    ├── meta-rackspace
**meta-x86
     ├── meta-intel
     ├── meta-mellanox
     ├── meta-portwell
     └── meta-quanta
**meta-openbmc-bsp/
     ├── meta-aspeed
     ├── meta-ibm
     ├── meta-nuvoton
meta-phosphor/


I began working on the workflows that a typical dev would do to check 
code in and have Jenkins automatically update the top level repo with 
the new additions, but run into troublewith a merge commit.

1. git clone openbmc-openbmc
2. #make changes
3. git add
4. git commit...
5. git subtree push --prefix=path/to/local/subtree 
ssh://openbmc.gerrit/openbmc/<subtree_name> HEAD:refs/for/master

At this point, the build CI would run it's normal operations and code 
review would take place.
Following a +2 and submit, Jenkins would:

1. cd openbmc-openbmc
2. git pull
3. git subtree pull --prefix=path/to/subtree --squash <remote> master 
#For all given subtrees

However at this point, I end up with two commits in the parent repo, one 
with the squashed changes, and a merge commit.
I don't know how to do this operation without ending up with a merge 
commit, do you have any advice here?

I could be totally overthinking the whole strategy, so any advice and 
direction is much appreciated!
Along those same lines, is subtree still the correct tool? I hear repo 
works for a lot of projects, Yocto uses 
https://wiki.yoctoproject.org/wiki/Combo-layer.

Thanks,
-Dave


More information about the openbmc mailing list