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]

(From OE-Core rev: 02d3ba17a8090bd088beb973980651d664f713bb)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen authored and Richard Purdie committed 2017-01-19 22:47:22 +00:00
1 parent 4e67232f34
commit 927e759bb2
1 file changed
+5 -3
+5 -3
View File
@@ -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):