summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2017-08-31 11:54:07 +1200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-09-11 17:30:30 +0100
commit6426136655cb00996c1870e2075a57716bfba846 (patch)
treefac3f5f8b1f0f885357de334a13a12abcdf6df00 /scripts/lib
parente249708e10bdb4713195de31329dbe05dc3d18d1 (diff)
downloadpoky-6426136655cb00996c1870e2075a57716bfba846.tar.gz
devtool: upgrade: check that user has configured git properly
If user.name or user.email haven't been set then git rebase can't really work properly. Check that the user has set these and error out if not. (Elsewhere we are relying on OE's git patch functionality which forces a dummy OE value - that's OK there as it's completely under OE's control and therefore it's OK for a dummy OE user to be the committer, but here the rebase may require intervention so it's reasonable to have the user's actual name and email on the operation.) Fixes [YOCTO #11947]. (From OE-Core rev: 129a3be07e272013be2db17552c13b4d8cc2cf6e) (From OE-Core rev: 802829f1c38d8c5eee11ba1d9ddd37cf02597f6e) Signed-off-by: paul <paul@peggleto-mobl.ger.corp.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/devtool/upgrade.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/scripts/lib/devtool/upgrade.py b/scripts/lib/devtool/upgrade.py
index 297d646f55..41bd34e61a 100644
--- a/scripts/lib/devtool/upgrade.py
+++ b/scripts/lib/devtool/upgrade.py
@@ -1,6 +1,6 @@
1# Development tool - upgrade command plugin 1# Development tool - upgrade command plugin
2# 2#
3# Copyright (C) 2014-2015 Intel Corporation 3# Copyright (C) 2014-2017 Intel Corporation
4# 4#
5# This program is free software; you can redistribute it and/or modify 5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License version 2 as 6# it under the terms of the GNU General Public License version 2 as
@@ -355,6 +355,29 @@ def _create_new_recipe(newpv, md5, sha256, srcrev, srcbranch, workspace, tinfoil
355 355
356 return fullpath, copied 356 return fullpath, copied
357 357
358
359def _check_git_config():
360 def getconfig(name):
361 try:
362 value = bb.process.run('git config --global %s' % name)[0].strip()
363 except bb.process.ExecutionError as e:
364 if e.exitcode == 1:
365 value = None
366 else:
367 raise
368 return value
369
370 username = getconfig('user.name')
371 useremail = getconfig('user.email')
372 configerr = []
373 if not username:
374 configerr.append('Please set your name using:\n git config --global user.name')
375 if not useremail:
376 configerr.append('Please set your email using:\n git config --global user.email')
377 if configerr:
378 raise DevtoolError('Your git configuration is incomplete which will prevent rebases from working:\n' + '\n'.join(configerr))
379
380
358def upgrade(args, config, basepath, workspace): 381def upgrade(args, config, basepath, workspace):
359 """Entry point for the devtool 'upgrade' subcommand""" 382 """Entry point for the devtool 'upgrade' subcommand"""
360 383
@@ -365,6 +388,8 @@ def upgrade(args, config, basepath, workspace):
365 if args.srcbranch and not args.srcrev: 388 if args.srcbranch and not args.srcrev:
366 raise DevtoolError("If you specify --srcbranch/-B then you must use --srcrev/-S to specify the revision" % args.recipename) 389 raise DevtoolError("If you specify --srcbranch/-B then you must use --srcrev/-S to specify the revision" % args.recipename)
367 390
391 _check_git_config()
392
368 tinfoil = setup_tinfoil(basepath=basepath, tracking=True) 393 tinfoil = setup_tinfoil(basepath=basepath, tracking=True)
369 try: 394 try:
370 rd = parse_recipe(config, tinfoil, args.recipename, True) 395 rd = parse_recipe(config, tinfoil, args.recipename, True)