зеркало из https://github.com/mozilla/gecko-dev.git
fix for bug 51670: Dependency loops are possible
we now search each list (dependson, blocks) to see if a bug number shows up in each list. a bug can't be dependent upon and block the same bug. also make it so you can't set a bug blocking or dependent on itself.
This commit is contained in:
Родитель
c4d709039a
Коммит
c97581c0fe
|
@ -755,6 +755,9 @@ The changes made were:
|
||||||
if ($comp ne $i) {
|
if ($comp ne $i) {
|
||||||
PuntTryAgain("$i is not a legal bug number");
|
PuntTryAgain("$i is not a legal bug number");
|
||||||
}
|
}
|
||||||
|
if ($id eq $i) {
|
||||||
|
PuntTryAgain("You can't make a bug blocked or dependent on itself.");
|
||||||
|
}
|
||||||
if (!exists $seen{$i}) {
|
if (!exists $seen{$i}) {
|
||||||
push(@{$deps{$target}}, $i);
|
push(@{$deps{$target}}, $i);
|
||||||
$seen{$i} = 1;
|
$seen{$i} = 1;
|
||||||
|
@ -779,7 +782,26 @@ The changes made were:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($me eq 'dependson') {
|
||||||
|
my @deps = @{$deps{'dependson'}};
|
||||||
|
my @blocks = @{$deps{'blocked'}};
|
||||||
|
my @union = ();
|
||||||
|
my @isect = ();
|
||||||
|
my %union = ();
|
||||||
|
my %isect = ();
|
||||||
|
foreach my $b (@deps, @blocks) { $union{$b}++ && $isect{$b}++ }
|
||||||
|
@union = keys %union;
|
||||||
|
@isect = keys %isect;
|
||||||
|
if (@isect > 0) {
|
||||||
|
my $both;
|
||||||
|
foreach my $i (@isect) {
|
||||||
|
$both = $both . "#" . $i . " ";
|
||||||
|
}
|
||||||
|
PuntTryAgain("Dependency loop detected!<P>" .
|
||||||
|
"This bug can't be both blocked and dependent " .
|
||||||
|
"on bug " . $both . "!");
|
||||||
|
}
|
||||||
|
}
|
||||||
my $tmp = $me;
|
my $tmp = $me;
|
||||||
$me = $target;
|
$me = $target;
|
||||||
$target = $tmp;
|
$target = $tmp;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче