From 5c102d4541a9200d7e746739bdfd36eee6712b5d Mon Sep 17 00:00:00 2001 From: cjwatson <> Date: Sun, 17 Jul 2005 16:55:11 -0800 Subject: [PATCH] [project @ 2005-07-17 17:55:11 by cjwatson] Write found and fixed versions directly into .summary files rather than into a separate versions database. --- migrate/debbugs-makeversions | 50 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/migrate/debbugs-makeversions b/migrate/debbugs-makeversions index 67f3e152..2891dfeb 100755 --- a/migrate/debbugs-makeversions +++ b/migrate/debbugs-makeversions @@ -12,9 +12,9 @@ require "$lib_path/errorlib"; use Debbugs::Log; use Debbugs::MIME; -if (@ARGV != 2) { +if (@ARGV != 1) { print <= - # (stat "$gSpoolDir/$db/$dir/$file")[9]; print "Processing $bug ...\n" if $ENV{DEBBUGS_VERBOSE}; - my $status = readbug($bug, $db); - next unless defined $status; + my ($locks, $status) = lockreadbugmerge($bug, $db); + unless (defined $status) { + unlockreadbugmerge($locks); + next; + } my ($found_versions, $fixed_versions) = getbuginfo("$gSpoolDir/$db/$dir/$file"); if (length $status->{mergedwith}) { - for my $merge (split ' ', $status->{mergedwith}) { + @merges = sort { $a <=> $b } split ' ', $status->{mergedwith}; + if ($merges[0] < $bug) { + # already processed + unlockreadbugmerge($locks); + next; + } + for my $merge (@merges) { $merge =~ /(..)$/; my $mergehash = $1; my ($mfound, $mfixed) = @@ -181,19 +183,19 @@ while (defined(my $dir = readdir DB)) { @$fixed_versions = () unless length $status->{done}; for my $out ($bug, (split ' ', $status->{mergedwith})) { - $out =~ /(..)$/; - my $outhash = $1; - - unless (-d "$verdb/$outhash") { - mkdir "$verdb/$outhash" or die "Can't mkdir $verdb/$outhash: $!"; + if ($out != $bug) { + filelock("lock/$out"); + } + my $outstatus = readbug($out, $db); + $outstatus->{found_versions} = [@$found_versions]; + $outstatus->{fixed_versions} = [@$fixed_versions]; + writebug($out, $mergestatus); + if ($out != $bug) { + unfilelock(); } - - open VERSIONS, "> $verdb/$outhash/$out.versions" - or die "Can't open $verdb/$outhash/$out.versions: $!"; - print VERSIONS "Found-in: @$found_versions\n"; - print VERSIONS "Fixed-in: @$fixed_versions\n"; - close VERSIONS; } + + unlockreadbugmerge($locks); } closedir HASH; -- 2.39.5