From 1373a978ea5ec321e4fb4808f8d53a4fcecf93c1 Mon Sep 17 00:00:00 2001 From: sersut Date: Wed, 23 Oct 2013 14:34:41 -0700 Subject: When merging two arrays during deep merge instead of deduplicating and merging elements, pick the one that is higher in the inheritance order. --- chef/lib/chef/mixin/deep_merge.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/chef/lib/chef/mixin/deep_merge.rb b/chef/lib/chef/mixin/deep_merge.rb index dd6e946ba1..9eeaf125b1 100644 --- a/chef/lib/chef/mixin/deep_merge.rb +++ b/chef/lib/chef/mixin/deep_merge.rb @@ -181,7 +181,10 @@ class Chef puts if merge_debug end puts "#{di} merging arrays: #{source.inspect} :: #{dest.inspect}" if merge_debug - dest = dest | source + # When merging to arrays instead of merging and + # deduplicating the elements pick the array that is higher + # in the inheritance order. + dest = source dest.sort! if sort_merged_arrays elsif overwrite_unmergeable puts "#{di} overwriting dest: #{source.inspect} -over-> #{dest.inspect}" if merge_debug -- cgit v1.2.1