On 03/12/16 06:55, Khem Raj wrote:
On Sat, Mar 12, 2016 at 1:33 PM, Trevor Woerner <twoer...@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?
--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to