------------------------------------------------------------ revno: 941 committer: Debian BTS <debb...@rietz> branch nick: debian timestamp: Wed 2009-11-25 20:31:57 +0000 message: merge changes from don source ------------------------------------------------------------ revno: 721.14.196 committer: Don Armstrong <d...@donarmstrong.com> branch nick: source timestamp: Wed 2009-11-25 12:30:31 -0800 message: handle multiple packages and tags in limit ------------------------------------------------------------ revno: 721.14.195 committer: Don Armstrong <d...@donarmstrong.com> branch nick: source timestamp: Tue 2009-10-20 13:36:01 -0700 message: add config switch for simple_versioning
=== modified file 'Debbugs/Config.pm' --- Debbugs/Config.pm 2009-08-17 20:23:04 +0000 +++ Debbugs/Config.pm 2009-11-25 20:31:55 +0000 @@ -59,6 +59,7 @@ qw($gMaintainerFileOverride $gPseudoMaintFile $gPseudoDescFile $gPackageSource), qw($gVersionPackagesDir $gVersionIndex $gBinarySourceMap $gSourceBinaryMap), qw($gVersionTimeIndex), + qw($gSimpleVersioning), qw($gSendmail $gLibPath $gSpamScan @gExcludeFromControl), qw(%gSeverityDisplay @gTags @gSeverityList @gStrongSeverities), qw(%gTagsSingleLetter), @@ -762,6 +763,17 @@ set_default(\%config,'package_source',$config{config_dir}.'/indices/sources'); +=item simple_versioning + +If true this causes debbugs to ignore version information and just +look at whether a bug is done or not done. Primarily of interest for +debbugs installs which don't track versions. defaults to false. + +=cut + +set_default(\%config,'simple_versioning',0); + + =item version_packages_dir Location where the version package information is kept; defaults to
=== modified file 'Debbugs/Control.pm' --- Debbugs/Control.pm 2009-09-03 05:44:32 +0000 +++ Debbugs/Control.pm 2009-11-25 20:31:55 +0000 @@ -2799,23 +2799,28 @@ my $transcript = globify_scalar(exists $param{transcript}?$param{transcript}:undef); my $going_to_fail = 0; for my $data (@data) { - $data = get_bug_status(bug => $data->{bug_num}, - status => dclone($data), - ); + $data = split_status_fields(get_bug_status(bug => $data->{bug_num}, + status => dclone($data), + )); for my $field (keys %{$param{limit}}) { next unless exists $param{limit}{$field}; my $match = 0; - for my $limit (make_list($param{limit}{$field})) { + my @data_fields = make_list($data->{$field}); +LIMIT: for my $limit (make_list($param{limit}{$field})) { if (not ref $limit) { - if ($data->{$field} eq $limit) { - $match = 1; - last; + for my $data_field (@data_fields) { + if ($data_field eq $limit) { + $match = 1; + last LIMIT; + } } } elsif (ref($limit) eq 'Regexp') { - if ($data->{$field} =~ $limit) { - $match = 1; - last; + for my $data_field (@data_fields) { + if ($data_field =~ $limit) { + $match = 1; + last LIMIT; + } } } else {