From: Don Armstrong Date: Mon, 4 Dec 2017 22:06:27 +0000 (-0800) Subject: fix forcemerging bugs which were formerly blocks/blockedby X-Git-Tag: release/2.6.0~57 X-Git-Url: https://git.donarmstrong.com/?p=debbugs.git;a=commitdiff_plain;h=a3cdfd4b21d064cb42c67b5e0eb713ea6b2e5076;hp=8a615efb55a87343bc3e059c4e966847f29987e4 fix forcemerging bugs which were formerly blocks/blockedby - Bugs which are being merged must not also block eachother --- diff --git a/Debbugs/Control.pm b/Debbugs/Control.pm index 32239af..02bb07e 100644 --- a/Debbugs/Control.pm +++ b/Debbugs/Control.pm @@ -2298,13 +2298,22 @@ sub __calculate_merge_status{ $merged_bugs{$data->{bug_num}} = 1; $bugs_to_merge = 1; } + } + for my $data (@{$data_a}) { # the master_bug is the bug that every other bug is made to # look like. However, if merge is set, tags, fixed and found # are merged. if ($data->{bug_num} == $master_bug) { - for (qw(package forwarded severity blocks blockedby done owner summary outlook affects)) { + for (qw(package forwarded severity done owner summary outlook affects)) { $merge_status{$_} = $data->{$_} } + # bugs which are in the newly merged set and are also + # blocks/blockedby must be removed before merging + for (qw(blocks blockedby)) { + $merge_status{$_} = + join(' ',grep {not exists $merged_bugs{$_}} + split / /,$data->{$_}); + } } if (defined $merge_status) { next unless $data->{bug_num} == $master_bug;