};
if ($@) {
$errors++;
- print {$transcript} "Failed to unmerge $ref: $@".cleanup_eval_fail($@,$debug)."\n";
+ print {$transcript} "Failed to unmerge $ref: ".cleanup_eval_fail($@,$debug)."\n";
}
} elsif (m/^merge\s+#?(-?\d+(\s+#?-?\d+)+)\s*$/i) {
$ok++;
};
if ($@) {
$errors++;
- print {$transcript} "Failed to merge $ref: $@".cleanup_eval_fail($@,$debug)."\n";
+ print {$transcript} "Failed to merge $ref: ".cleanup_eval_fail($@,$debug)."\n";
}
} elsif (m/^forcemerge\s+\#?(-?\d+(?:\s+\#?-?\d+)+)\s*$/i) {
$ok++;
} elsif (m/^affects?\s+\#?(-?\d+)(?:\s+((?:[=+-])?)\s*(\S.*)?)?\s*$/i) {
$ok++;
$ref = $1;
- my $add_remove = $2 || '';
- my $packages = $3 || '';
+ my $add_remove = $2;
+ my $packages = $3;
+ # if there isn't a package given, assume that we should unset
+ # affects; otherwise default to adding
+ if (not defined $packages or
+ not length $packages) {
+ $packages = '';
+ $add_remove ||= '=';
+ }
+ elsif (not defined $add_remove or
+ not length $add_remove) {
+ $add_remove = '+';
+ }
$ref = $clonebugs{$ref} if exists $clonebugs{$ref};
eval {
affects(@common_control_options,
Precedence => 'bulk',
keys %affected_packages ?("X-${gProject}-PR-Package" => join(' ',keys %affected_packages)):(),
keys %affected_packages ?("X-${gProject}-PR-Source" =>
- join(' ',grep {defined $_} map {binary_to_source(binary => $_)} keys %affected_packages)):(),
+ join(' ',
+ map {defined $_ ?(ref($_)?@{$_}:$_):()}
+ binary_to_source(binary => [keys %affected_packages],
+ source_only => 1))):(),
"X-$gProject-PR-Message" => 'transcript',
@common_headers,
],