On Sat, 12 Mar 2016 21:35:29 Trevor Woerner wrote: > Provide many more details concerning the repositories that are used in a > particular build: the remote information, the layer, the local branch, the > remote branch the local branch tracks (if any), and the HEAD commit. > > Signed-off-by: Trevor Woerner <twoer...@gmail.com> > --- > meta/classes/buildhistory.bbclass | 6 +++++- > meta/classes/metadata_scm.bbclass | 18 ++++++++++++++++++ > 2 files changed, 23 insertions(+), 1 deletion(-) > > diff --git a/meta/classes/buildhistory.bbclass > b/meta/classes/buildhistory.bbclass index b6b4324..1b0ae0e 100644 > --- a/meta/classes/buildhistory.bbclass > +++ b/meta/classes/buildhistory.bbclass > @@ -615,9 +615,13 @@ def buildhistory_get_build_id(d): > > def buildhistory_get_metadata_revs(d): > # We want an easily machine-readable format here, so > get_layers_branch_rev isn't quite what we want + import subprocess > layers = (d.getVar("BBLAYERS", True) or "").split() > - medadata_revs = ["%-17s = %s:%s" % (os.path.relpath(i, > d.getVar('BBLAYERS_FETCH_DIR', True)), \ + medadata_revs = ["%s\tlayer: > %s\n\tbranch: %s\n\tremote: %s\n\tHEAD: %s\n" % ( \ + > base_get_metadata_git_remote(i, None), \ > + os.path.relpath(i, d.getVar('BBLAYERS_FETCH_DIR', True)), \ > base_get_metadata_git_branch(i, None).strip(), \ > + base_get_metadata_git_remote_branch(i, None).strip(), \ > base_get_metadata_git_revision(i, None)) \ > for i in layers] > return '\n'.join(medadata_revs) > diff --git a/meta/classes/metadata_scm.bbclass > b/meta/classes/metadata_scm.bbclass index 0f7f423..31a2c54 100644 > --- a/meta/classes/metadata_scm.bbclass > +++ b/meta/classes/metadata_scm.bbclass > @@ -73,6 +73,15 @@ def base_get_metadata_git_branch(path, d): > rev = '<unknown>' > return rev.strip() > > +def base_get_metadata_git_remote_branch(path, d): > + import bb.process > + > + try: > + rev, _ = bb.process.run('git rev-parse --abbrev-ref > --symbolic-full-name @{u}', cwd=path) + except > bb.process.ExecutionError: > + rev = '(HEAD does not point to a remote branch)' > + return rev.strip() > + > def base_get_metadata_git_revision(path, d): > import bb.process > > @@ -81,3 +90,12 @@ def base_get_metadata_git_revision(path, d): > except bb.process.ExecutionError: > rev = '<unknown>' > return rev.strip() > + > +def base_get_metadata_git_remote(path, d): > + import bb.process > + > + try: > + lines, _ = bb.process.run('git remote -v', cwd=path) > + except bb.process.ExecutionError: > + return '<unknown>' > + return lines
As I mentioned in my other reply, metadata-revs was intended to be consumed by scripts rather than humans, so I'd rather not change its format unless absolutely necessary. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core