X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Debbugs%2FControl.pm;h=1f8b3aac60d3cb98fe5264795fc7806e795c4bac;hb=6532b246361b5d28b6ce3b44154a71edd3ca9a9e;hp=916a02e32db40eff05c1a905a442a8a570fa8d95;hpb=1eb9e36204834ca84c425985d6f0888ea7b78f74;p=debbugs.git diff --git a/Debbugs/Control.pm b/Debbugs/Control.pm index 916a02e..1f8b3aa 100644 --- a/Debbugs/Control.pm +++ b/Debbugs/Control.pm @@ -380,8 +380,8 @@ sub set_blocks { # blocker if (keys %bad_blockers and $mode eq 'set') { __end_control(%info); - croak "Unknown blocking bug(s):".join(', ',keys %bad_blockers). - keys %ok_blockers?'':" and no known blocking bug(s)"; + croak "Unknown/archived blocking bug(s):".join(', ',keys %bad_blockers). + keys %ok_blockers?'':" and no good blocking bug(s)"; } # if there are no ok blockers and we are not setting the blockers, # there's an error. @@ -389,7 +389,7 @@ sub set_blocks { print {$transcript} "No valid blocking bug(s) given; not doing anything\n"; if (keys %bad_blockers) { __end_control(%info); - croak "Unknown blocking bug(s):".join(', ',keys %bad_blockers); + croak "Unknown/archived blocking bug(s):".join(', ',keys %bad_blockers); } __end_control(%info); return; @@ -3246,6 +3246,15 @@ sub bug_unarchive { my @bugs = @{$info{bugs}}; my $action = "$config{bug} unarchived."; my @files_to_remove; + ## error out if we're unarchiving unarchived bugs + for my $data (@{$info{data}}) { + if (not defined $data->{archived} or + not $data->{archived} + ) { + __end_control(%info); + croak("Bug $data->{bug_num} was not archived; not unarchiving it."); + } + } for my $bug (@bugs) { print {$debug} "$param{bug} removing $bug\n"; my $dir = get_hashname($bug);