[OE-core] [PATCH] buildhistory.bbclass: metadata-revs show repo parent
Trevor Woerner
twoerner at gmail.com
Sat Mar 12 15:26:54 UTC 2016
On 03/12/16 06:55, Khem Raj wrote:
> On Sat, Mar 12, 2016 at 1:33 PM, Trevor Woerner <twoerner at gmail.com> wrote:
>> To me, the purpose of buildhistory's metadata-revs is to enable someone else
>> (or myself in the future) to recreate a specific build, that's why I always
>> save this file with any build artifacts. Simply saying "meta" isn't good
>> enough because it doesn't specify which repository's "meta". So the purpose
>> of this patch is to try to clarify which repositories we're talking about.
>>
>>> Before:
>>> meta = master:00d3fd571a8d261d065b43f5cf3076a381843984
>>> meta-oe = master:a1e135a499998add7575682bf53db5e02e753580
>>> meta-gnome = master:a1e135a499998add7575682bf53db5e02e753580
>>> meta-rpb = master:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
>>> meta-96boards = master:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
>>> meta-qcom = master:32fcda819acb8ec485d9ab05108d554f807bf75d
>>> meta-browser = master:a3789a4168fcd42f1cdf5b5febe2c779a9467919
>>> meta-linaro-toolchain =
>>> master:367f784b831938dc508b7d472342d2d0d6ed9769
>>> meta = master:37b61b059031e3c272a929b834e12fd83f46598c
>>> meta-poky = master:37b61b059031e3c272a929b834e12fd83f46598c
>>>
>>> After:
>>> openembedded-core/meta =
>>> master:00d3fd571a8d261d065b43f5cf3076a381843984
>>> meta-openembedded/meta-oe =
>>> master:a1e135a499998add7575682bf53db5e02e753580
>>> meta-openembedded/meta-gnome =
>>> master:a1e135a499998add7575682bf53db5e02e753580
>>> meta-rpb = master:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
>>> meta-96boards = master:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
>>> meta-qcom = master:32fcda819acb8ec485d9ab05108d554f807bf75d
>>> meta-browser = master:a3789a4168fcd42f1cdf5b5febe2c779a9467919
>>> meta-linaro/meta-linaro-toolchain =
>>> master:367f784b831938dc508b7d472342d2d0d6ed9769
>>> meta-poky/meta = master:37b61b059031e3c272a929b834e12fd83f46598c
>>> meta-poky/meta-poky = master:37b61b059031e3c272a929b834e12fd83f46598c
>>
>> I have a second patch, now, that will generate the following output, which I
>> think is even better:
>>
>> git://git.openembedded.org/openembedded-core.git
>> openembedded-core/meta = master:00d3fd571a8d261d065b43f5cf3076a381843984
>>
>> git://git.openembedded.org/meta-openembedded
>> meta-openembedded/meta-oe =
>> master:a1e135a499998add7575682bf53db5e02e753580
>>
>> git://git.openembedded.org/meta-openembedded
>> meta-openembedded/meta-gnome =
>> master:a1e135a499998add7575682bf53db5e02e753580
>>
>> git://github.com/96boards/meta-rpb.git
>> meta-rpb = master:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
>>
>> https://github.com/96boards/meta-96boards.git
>> meta-96boards = master:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
>>
>> https://github.com/ndechesne/meta-qcom.git
>> meta-qcom = master:32fcda819acb8ec485d9ab05108d554f807bf75d
>>
>> git://github.com/OSSystems/meta-browser.git
>> meta-browser = master:a3789a4168fcd42f1cdf5b5febe2c779a9467919
>>
>> git://git.linaro.org/openembedded/meta-linaro.git
>> meta-linaro/meta-linaro-toolchain =
>> master:367f784b831938dc508b7d472342d2d0d6ed9769
>>
>> git://git.yoctoproject.org/poky
>> meta-poky/meta = master:37b61b059031e3c272a929b834e12fd83f46598c
>>
>> git://git.yoctoproject.org/poky
>> meta-poky/meta-poky = master:37b61b059031e3c272a929b834e12fd83f46598c
>>
>> Frankly, there are too many forks and clones. There are too many
>> meta-beaglebone or meta-odroid or meta-raspberrypi repositories. If six
>> months from now I want to recreate a build I've done today, I'll need to
>> know the repository, where it's from, and which commit was checked out. My
>> latest patch provides that information.
>>
>> Is this better?
> what happens if one has a local checkout forked from upstream branch ?
> it reports that one, so buildhistory is expecting you to control the repos
> e.g. when using tools like repo, it gets utterly confused since its meant
> to track local checkout SHAs not remote ones, may be your change
> can establish a better origin tracking. it would be interesting to see
> how it works with repo and when I have more than 1 remotes in a single
> repo
Here's how it handled a build that I have where the repositories are
handled by the repo tool:
https://github.com/openembedded/openembedded-core
meta =
contrib/twoerner/buildhistory-patches:953046fa31617a0c53f66faacf3fa9ef88375dee
https://github.com/openembedded/meta-openembedded
../meta-openembedded/meta-oe = HEAD:dc5634968b270dde250690609f0015f881db81f2
https://github.com/openembedded/meta-openembedded
../meta-openembedded/meta-gnome =
HEAD:dc5634968b270dde250690609f0015f881db81f2
https://github.com/96boards/meta-rpb
../meta-rpb = HEAD:203903ca6f4e8df09bef6ea3c6e899d07eca8df9
https://github.com/96boards/meta-96boards
../meta-96boards = HEAD:2be59f0d381b5ec173d7fc24f3ae14aaf47b8649
http://git.linaro.org/openembedded/meta-linaro
../meta-linaro/meta-linaro-toolchain =
HEAD:395ca11e22c26bd0c26ea1078722628ba6aa2332
https://github.com/ndechesne/meta-qcom
../meta-qcom = HEAD:32fcda819acb8ec485d9ab05108d554f807bf75d
https://github.com/linaro-home/meta-browser
../meta-browser = HEAD:5c00d0114c5963a178cb33f6d06181c588c03ae0
My patch simply uses "git remote -v" and takes the first line. I'll look
into reporting multiple remotes.
Local forks of upstream repositories would simply be reported as local
repositories. I'm not even sure what I would do on the cmdline to figure
out that sort of repository's origin, other than to manually work
backwards until I found something that looked sensible.
In any case, the above is an improvement?
More information about the Openembedded-core
mailing list