I think there are two specific issues here that I just want to clarify again:
1. Making 5/6 consistent with 3/4 would mean that inherited attributes would overwrite imported attributes only if the inherited attributes have values in the parent.
eg. Importing "Task 2, status = delayed" on to "Task 1, status = ''" would produce:
Task 1, status = ''
|
+ Task 2, status = 'delayed'
but importing "Task 2, status = delayed" on to "Task 1, status = 'started'" would produce:
Task 1, status = 'started'
|
+ Task 2, status = 'started'
2. However making 3/4/5/6 consistent with 1/2 would mean that inherited attributes would overwrite imported attributes even if the inherited attributes had no values in the parent.
eg. Importing "Task 2, status = delayed" on to "Task 1, status = ''" would produce:
Task 1, status = ''
|
+ Task 2, status = ''
ie. blank parent values would overwrite non-blank subtask values.
But the more I think about it the more uncomfortable I am in just changing this behaviour, because I don't doubt that the current behaviour of 3/4 was implemented to meet a specific user need.
So, I'm going to back-peddle a bit and say that to start with I will just make 5/6 consistent with 3/4 which still means that imported attributes will get overwritten by inherited parent attributes but only if the parent actually has a value.
Said in another way: when importing, if the parent has a value that's what the subtask will get, otherwise it gets the imported value.
Then in 7.3, we have the option to add some preferences to control these behaviours better.