# guesswork, based on Version: pseudo-headers and closing mails that look
# like Debian changelogs. The latter in particular is somewhat heuristic.
+# <@aj> Hackin' on the BTS, Feelin' like it'll take forever; Oh you better
+# hold it's hand, when it dies on names so clever. These are the best
+# bugs of our life. It's up to archive-slash-69, man we were killin'
+# time, we were young and resltess, we needed to unwind. I guess
+# nothin' can last forever - forever, no...
+
my $config_path = '/etc/debbugs';
my $lib_path = '/usr/lib/debbugs';
$fv =~ s/;.*//;
$fv =~ s/ *\(.*\)//;
# Strip off other random junk at the end of a version.
- $fv =~ s/ *[A-Za-z].*//;
+ $fv =~ s/ +[A-Za-z].*//;
$ver = $fv;
}
}
next;
}
- my ($found_versions, $fixed_versions) = getbuginfo("$db/$dir/$file");
+ if (@{$status->{found_versions}} or @{$status->{fixed_versions}}) {
+ unlockreadbugmerge($locks);
+ next;
+ }
+ 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;
@$fixed_versions = () unless length $status->{done};
- for my $out ($bug, (split ' ', $status->{mergedwith})) {
+ for my $out ($bug, @merges) {
if ($out != $bug) {
filelock("lock/$out");
}
my $outstatus = readbug($out, $db);
$outstatus->{found_versions} = [@$found_versions];
$outstatus->{fixed_versions} = [@$fixed_versions];
- writebug($out, $outstatus);
+ writebug($out, $outstatus, $db, 2, 'disable bughook');
if ($out != $bug) {
unfilelock();
}