summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/bb/data.py2
-rw-r--r--lib/bb/data_smart.py23
2 files changed, 14 insertions, 11 deletions
diff --git a/lib/bb/data.py b/lib/bb/data.py
index a21de112e..f6415a467 100644
--- a/lib/bb/data.py
+++ b/lib/bb/data.py
@@ -202,7 +202,7 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
return False
if all:
- d.varhistory.emit(var, oval, val, o)
+ d.varhistory.emit(var, oval, val, o, d)
if (var.find("-") != -1 or var.find(".") != -1 or var.find('{') != -1 or var.find('}') != -1 or var.find('+') != -1) and not all:
return False
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index f0187b7a1..26f69d105 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -252,8 +252,20 @@ class VariableHistory(object):
else:
return []
- def emit(self, var, oval, val, o):
+ def emit(self, var, oval, val, o, d):
history = self.variable(var)
+
+ # Append override history
+ if var in d.overridedata:
+ for (r, override) in d.overridedata[var]:
+ for event in self.variable(r):
+ loginfo = event.copy()
+ if 'flag' in loginfo and not loginfo['flag'].startswith("_"):
+ continue
+ loginfo['variable'] = var
+ loginfo['op'] = 'override[%s]:%s' % (override, loginfo['op'])
+ history.append(loginfo)
+
commentVal = re.sub('\n', '\n#', str(oval))
if history:
if len(history) == 1:
@@ -496,15 +508,6 @@ class DataSmart(MutableMapping):
# Force CoW by recreating the list first
self.overridedata[shortvar] = list(self.overridedata[shortvar])
self.overridedata[shortvar].append([var, override])
- for event in self.varhistory.variable(var):
- if 'flag' in loginfo and not loginfo['flag'].startswith("_"):
- continue
- loginfo = event.copy()
- loginfo['variable'] = shortvar
- loginfo['op'] = 'override[%s]:%s' % (override, loginfo['op'])
- loginfo['nodups'] = True
- self.varhistory.record(**loginfo)
-
override = None
if "_" in shortvar:
override = var[shortvar.rfind('_')+1:]