oeqa/utils/metadata: Allow to function without the git module

The python git module may or may not be enabled, allow this code to
function without it, falling back to the same method as metadata_scm.bbclass
uses. This will be cleaned up in the next round of feature development.

(From OE-Core rev: 6350586ba9f4a4107a2d457590824cd4d662d5b9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2018-10-29 13:46:52 +00:00
parent 4b9ef43274
commit 44ee41052c

View File

@ -58,9 +58,22 @@ def metadata_from_data_store(d):
def git_rev_info(path):
"""Get git revision information as a dict"""
from git import Repo, InvalidGitRepositoryError, NoSuchPathError
info = OrderedDict()
try:
from git import Repo, InvalidGitRepositoryError, NoSuchPathError
except ImportError:
import subprocess
try:
info['branch'] = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd=path).decode('utf-8').strip()
except subprocess.CalledProcessError:
pass
try:
info['commit'] = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=path).decode('utf-8').strip()
except subprocess.CalledProcessError:
pass
return info
try:
repo = Repo(path, search_parent_directories=True)
except (InvalidGitRepositoryError, NoSuchPathError):