From 7a0d6771609b3753e3d0ed6a7b3894790f3c22f2 Mon Sep 17 00:00:00 2001 From: Andreas Koenig Date: Thu, 16 Nov 2017 06:02:32 +0100 Subject: [PATCH] Calculate oldest by both v - in case M and v conflict, skip - otherwise consider removing oldest by v --- bin/analysis-oldreports-extinction-program.pl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/bin/analysis-oldreports-extinction-program.pl b/bin/analysis-oldreports-extinction-program.pl index 7a25eeb8..adc06bb0 100755 --- a/bin/analysis-oldreports-extinction-program.pl +++ b/bin/analysis-oldreports-extinction-program.pl @@ -264,13 +264,23 @@ LOOP: while ($bavail < $Opt{untildf}) { my $l = $odist{$d}; next unless scalar keys %$l > $Opt{keepresults}; - my $oldest = reduce { $a > $b ? $a : $b } map { $_->{M} } map { @{$l->{$_}} } keys %$l; - next unless $oldest >= $Opt{minage}; + # m_oldest ==> oldest by tarball mtime + my $m_oldest = reduce { $a > $b ? $a : $b } map { $_->{M} } map { @{$l->{$_}} } keys %$l; + next unless $m_oldest >= $Opt{minage}; + + # v_oldest ==> oldest by version number + my $v_oldest = reduce { $a < $b ? $a : $b } map { $_->{v} } map { @{$l->{$_}} } keys %$l; + my($who_v_oldest) = map { $_->[0] } grep { $v_oldest == $_->[0]{v} } values %$l; + my $howold_by_M = $who_v_oldest->{M}; + if ($howold_by_M < $Opt{minage}) { + warn "Oldest_by_version would be $v_oldest, but it is younger than $Opt{minage}, namely $howold_by_M, skipping"; + next; + } my($abs_of_oldest); DISTV: for my $distv (keys %$l) { for my $i (0..$#{$l->{$distv}}) { - if ($l->{$distv}[$i]{M} == $oldest) { + if ($l->{$distv}[$i]{M} == $howold_by_M) { $abs_of_oldest = $l->{$distv}[$i]{abs}; last DISTV; } -- 2.11.4.GIT