From cb8b79732155a70d97afd161c31294e0e058ab1b Mon Sep 17 00:00:00 2001 From: Trevor Woerner Date: Sat, 12 Mar 2016 21:35:29 -0500 Subject: metadata-revs: provide more information 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 Signed-off-by: Martin Jansa --- meta/classes/buildhistory.bbclass | 5 ++++- meta/classes/metadata_scm.bbclass | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass index 804b8f2128..cf936925f2 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass @@ -678,8 +678,11 @@ 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 layers = (d.getVar("BBLAYERS") or "").split() - medadata_revs = ["%-17s = %s:%s" % (os.path.relpath(i, d.getVar('BBLAYERS_FETCH_DIR')), \ + 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')), \ 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 fa791f04c4..9285664bb5 100644 --- a/meta/classes/metadata_scm.bbclass +++ b/meta/classes/metadata_scm.bbclass @@ -72,6 +72,15 @@ def base_get_metadata_git_branch(path, d): rev = '' 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 @@ -80,3 +89,12 @@ def base_get_metadata_git_revision(path, d): except bb.process.ExecutionError: rev = '' 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 '' + return lines -- cgit 1.2.3-korg