summaryrefslogtreecommitdiffstats
path: root/lib/bb/data_smart.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-22 14:34:51 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-12 22:50:27 +0100
commitdddff5b7b8e6c18515b43389cef35503468b843d (patch)
tree9aedf3016c6a89a58b5ee224e01db0454e32d17c /lib/bb/data_smart.py
parentae87f5b8bf16191b3201cfb445062938eab992a0 (diff)
downloadopenembedded-core-contrib-dddff5b7b8e6c18515b43389cef35503468b843d.tar.gz
data_smart: VariableHistory: Ignore override duplicates and overlap with CoW functions
Trying to look up a variable called 'copy' in COW is problematic due to internal implmentation details, at least avoid tracebacks from this. Also don't duplicate override history (which is an atrefact of changed override behaviour) as otherwise the bitbake -e output is convoluted. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/data_smart.py')
-rw-r--r--lib/bb/data_smart.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 68efc7bb1c..d414bf4614 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -231,6 +231,10 @@ class VariableHistory(object):
if var not in self.variables:
self.variables[var] = []
+ if not isinstance(self.variables[var], list):
+ return
+ if 'nodups' in loginfo and loginfo in self.variables[var]:
+ return
self.variables[var].append(loginfo.copy())
def variable(self, var):
@@ -460,6 +464,7 @@ class DataSmart(MutableMapping):
loginfo = event.copy()
loginfo['variable'] = shortvar
loginfo['op'] = 'override[%s]:%s' % (override, loginfo['op'])
+ loginfo['nodups'] = True
self.varhistory.record(**loginfo)
override = None