aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2017-01-13 15:12:40 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-19 22:45:45 +0000
commit02d3ba17a8090bd088beb973980651d664f713bb (patch)
tree85e6e98672d72cdb6a9fa64be6639ffb0c6a35d4
parentfce531c21f5e56d0f416b3405a0b0fc5ba567679 (diff)
downloadopenembedded-core-contrib-02d3ba17a8090bd088beb973980651d664f713bb.tar.gz
oeqa.utils.metadata: fix retrieval of git branch and revision
Always return a valid branch name, or, '(nobranch)' if the current HEAD is detached. Also, always return the hash of the commit object that HEAD is pointing to. Previous code returned an incorrect branch name (or crashed) e.g. in the case of detached HEAD. [YOCTO #10590] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r--meta/lib/oeqa/utils/metadata.py8
1 files changed, 5 insertions, 3 deletions
diff --git a/meta/lib/oeqa/utils/metadata.py b/meta/lib/oeqa/utils/metadata.py
index a389c6a28e..b732d372df 100644
--- a/meta/lib/oeqa/utils/metadata.py
+++ b/meta/lib/oeqa/utils/metadata.py
@@ -72,11 +72,13 @@ def get_layers(layers):
layer_dict[layer_name] = OrderedDict()
try:
repo = Repo(layer, search_parent_directories=True)
- revision, branch = repo.head.object.name_rev.split()
except (InvalidGitRepositoryError, NoSuchPathError):
continue
- layer_dict[layer_name]['branch'] = branch
- layer_dict[layer_name]['revision'] = revision
+ layer_dict[layer_name]['revision'] = repo.head.commit.hexsha
+ try:
+ layer_dict[layer_name]['branch'] = repo.active_branch.name
+ except TypeError:
+ layer_dict[layer_name]['branch'] = '(nobranch)'
return layer_dict
def write_metadata_file(file_path, metadata):