From f64d73f8c458b0bf1d3a585e92e1e37965af7aa1 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 27 Apr 2015 10:53:21 +0100 Subject: devtool: update-recipe: check if source tree is a git repository If you've done "devtool add" (or "devtool modify" without -x) then it's possible that the external source tree is not a git repository, so we should handle that case here instead of printing a traceback. (From OE-Core master rev: eb2147aa8facd4ef33a0749e9ae660ec686dad48) (From OE-Core rev: c5dc3e819c1bb224e3cb667381faa5abf1888362) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/lib/devtool/standard.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'scripts') diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 0142fe0..6b53781 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -470,13 +470,19 @@ def update_recipe(args, config, basepath, workspace): return updated srctree = workspace[args.recipename] - if mode == 'srcrev': + + # Get HEAD revision + try: (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree) - srcrev = stdout.strip() - if len(srcrev) != 40: - logger.error('Invalid hash returned by git: %s' % stdout) - return 1 + except bb.process.ExecutionError as err: + print('Failed to get HEAD revision in %s: %s' % (srctree, err)) + return 1 + srcrev = stdout.strip() + if len(srcrev) != 40: + logger.error('Invalid hash returned by git: %s' % stdout) + return 1 + if mode == 'srcrev': logger.info('Updating SRCREV in recipe %s' % os.path.basename(recipefile)) patchfields = {} patchfields['SRCREV'] = srcrev -- cgit v1.1