From a3cdfd4b21d064cb42c67b5e0eb713ea6b2e5076 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Mon, 4 Dec 2017 14:06:27 -0800 Subject: [PATCH] fix forcemerging bugs which were formerly blocks/blockedby - Bugs which are being merged must not also block eachother --- Debbugs/Control.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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; -- 2.39.2