poky/scripts/lib/devtool
Dan Dedrick 84be37241c devtool: remove duplicate overrides
DEVTOOL_EXTRA_OVERRIDES only needs one entry for each instance of
overrides. Previous to these changes it would find every override to
SRC_URI and add it to the list. This would duplicate instances where
SRC_URI is modified multiple times with the same override like:
SRC_URI_append_foo += "file://0001-foo.patch"
SRC_URI_append_foo += "file://0002-bar.patch"

A bbappend might also overwrite a SRC_URI override, which would also
cause multiple instances to occur.

When there are multiple instances of the same override in
DEVTOOL_EXTRA_OVERRIDES it causes devtool modify to fail when creating
override branches. The failure occurs when attempting to create the same
override branch a second time and looks like this:

The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:devtool_post_patch(d)
     0003:
File: '/build/poky/meta/classes/devtool-source.bbclass', lineno: 202, function: devtool_post_patch
     0198:
     0199:        for override in extra_override_list:
     0200:            localdata = bb.data.createCopy(d)
     0201:            if override in default_overrides:
 *** 0202:                bb.process.run('git branch devtool-override-%s %s' % (override, devbranch), cwd=srcsubdir)
     0203:            else:
     0204:                # Reset back to the initial commit on a new branch
     0205:                bb.process.run('git checkout %s -b devtool-override-%s' % (initial_rev, override), cwd=srcsubdir)
     0206:                # Run do_patch function with the override applied
File: '/build/poky/bitbake/lib/bb/process.py', lineno: 178, function: run
     0174:        if not stderr is None:
     0175:            stderr = stderr.decode("utf-8")
     0176:
     0177:    if pipe.returncode != 0:
 *** 0178:        raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
     0179:    return stdout, stderr
Exception: bb.process.ExecutionError: Execution of 'git branch devtool-override-foo devtool' failed with exit code 128:
fatal: A branch named 'devtool-override-foo' already exists.

(From OE-Core rev: 90f667db2219f04e6d61588cd61056d3d8da6d7d)

Signed-off-by: Dan Dedrick <ddedrick@lexmark.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-01-22 14:35:58 +00:00
..
__init__.py devtool: set up git repos so that singletask.lock is ignored 2018-02-06 11:06:27 +00:00
build_image.py scripts: remove True option to getVar calls 2016-12-16 10:23:23 +00:00
build_sdk.py devtool: add build-sdk subcommand 2016-03-07 00:11:38 +00:00
build.py build.py: add clean option to 'devtool build' command 2018-09-10 12:13:06 +01:00
deploy.py devtool: fix target-deploy --strip 2018-11-27 22:13:11 +00:00
export.py logging: use warning instead warn 2018-07-26 13:16:40 +01:00
import.py logging: use warning instead warn 2018-07-26 13:16:40 +01:00
package.py meta/scripts: Various getVar/getVarFlag expansion parameter fixes 2017-01-09 13:39:11 +00:00
runqemu.py devtool: point runqemu to correct native bindir 2017-04-05 23:22:12 +01:00
sdk.py devtool/sdk.py: error out in case of downloading file failure 2018-05-15 10:56:48 +01:00
search.py devtool: search: tweak help text 2018-03-01 22:13:56 +00:00
standard.py devtool: remove duplicate overrides 2019-01-22 14:35:58 +00:00
upgrade.py logging: use warning instead warn 2018-07-26 13:16:40 +01:00
utilcmds.py devtool: make find-recipe and edit-recipe always work with any recipe 2017-11-11 12:14:27 +00:00