]> git.donarmstrong.com Git - debbugs.git/commitdiff
[project @ 2005-07-17 18:11:23 by cjwatson]
authorcjwatson <>
Mon, 18 Jul 2005 01:11:23 +0000 (17:11 -0800)
committercjwatson <>
Mon, 18 Jul 2005 01:11:23 +0000 (17:11 -0800)
improve efficiency of merge handling

migrate/debbugs-makeversions

index 977d3a3b46e88045fba3b22402136c87f33100f9..a072e31fc3fe42eef0f4a301edcd0aa0b9617098 100755 (executable)
@@ -161,15 +161,19 @@ while (defined(my $dir = readdir DB)) {
            next;
        }
 
-       my ($found_versions, $fixed_versions) = getbuginfo("$db/$dir/$file");
-
+       my @merges = ();
+       # Only process the lowest of each set of merged bugs.
        if (length $status->{mergedwith}) {
            @merges = sort { $a <=> $b } split ' ', $status->{mergedwith};
            if ($merges[0] < $bug) {
-               # already processed
                unlockreadbugmerge($locks);
                next;
            }
+       }
+
+       my ($found_versions, $fixed_versions) = getbuginfo("$db/$dir/$file");
+
+       if (length $status->{mergedwith}) {
            for my $merge (@merges) {
                $merge =~ /(..)$/;
                my $mergehash = $1;
@@ -182,7 +186,7 @@ while (defined(my $dir = readdir DB)) {
 
        @$fixed_versions = () unless length $status->{done};
 
-       for my $out ($bug, (split ' ', $status->{mergedwith})) {
+       for my $out ($bug, @merges) {
            if ($out != $bug) {
                filelock("lock/$out");
            }