diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-08-31 11:54:07 +1200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-09-11 17:30:30 +0100 |
commit | 6426136655cb00996c1870e2075a57716bfba846 (patch) | |
tree | fac3f5f8b1f0f885357de334a13a12abcdf6df00 | |
parent | e249708e10bdb4713195de31329dbe05dc3d18d1 (diff) | |
download | poky-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>
-rw-r--r-- | scripts/lib/devtool/upgrade.py | 27 |
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 | |||
359 | def _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 | |||
358 | def upgrade(args, config, basepath, workspace): | 381 | def 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) |