fixed old_revs code in build.pl
authortridge <tridge@1e5ffdc8-eadd-0310-9daa-9cb4117fe24b>
Sun, 29 Nov 2009 06:04:17 +0000 (06:04 +0000)
committertridge <tridge@1e5ffdc8-eadd-0310-9daa-9cb4117fe24b>
Sun, 29 Nov 2009 06:04:17 +0000 (06:04 +0000)
git-svn-id: file:///home/svn/build-farm/trunk@916 1e5ffdc8-eadd-0310-9daa-9cb4117fe24b

web/build.pl
web/data.pm

index 5570f24ac313f757aa1cd3ca9666458d8536f2e3..8053b4d8ba9eb5f5539ae348776fc1ff3fa74e6c 100755 (executable)
@@ -501,8 +501,8 @@ sub draw_dead_hosts {
 sub show_oldrevs($$$)
 {
     my ($tree, $host, $compiler) = @_;
-    my %revs = $db->get_old_revs($tree, $host, $compiler);
-    my @revs = sort { if ($b > $a) {return 1;} elsif ($b < $a) {return -1;} else {return 0;} } keys %revs;
+
+    my @revs = $db->get_old_revs($tree, $host, $compiler);
 
     return if ($#revs < 1);
 
@@ -515,12 +515,13 @@ sub show_oldrevs($$$)
     my $lastrev = "";
 
     for my $rev (@revs) {
-           my $s = $revs{$rev};
-           my $revision = $db->build_revision($host, $tree, $compiler, $rev);
+           my $s = $rev->{STATUS};
+           my $revision = $rev->{REVISION};
            $s =~ s/$rev/0/;
            next if ($s eq $lastrev);
            $lastrev = $s;
-           $ret.=$req->Tr($req->td([revision_link($revision, $tree), build_link($host, $tree, $compiler, $rev, $revs{$rev})]));
+           $ret.=$req->Tr($req->td([revision_link($revision, $tree), build_link($host, $tree, $compiler, 
+                                                                                $rev->{REVISION}, $rev->{STATUS})]));
     }
     if ($lastrev ne "") {
                # Only print table if there was any actual data
index ef296d741f7a902e175180df10869b8b6184fd97..578eeda426b9c04f33624bdc84317dfa56bbfd2c 100644 (file)
@@ -609,15 +609,22 @@ sub get_old_revs($$$$)
        opendir(DIR, $directory) || die "can't opendir $directory: $!";
        my @list = (grep { /^build\.$tree\.$host\.$compiler-.*\.log$/ } readdir(DIR));
        closedir DIR;
-       my %ret;
+       my @ret;
        for my $l (@list) {
-               if ($l =~ /-(\d+).log$/) {
+               if ($l =~ /-([0-9A-Fa-f]+).log$/) {
                        my $rev = $1;
-                       $ret{$rev} = $self->build_status($host, $tree, $compiler, $rev);
+                       my $r;
+                       my $stat = stat($directory . "/" . $l);
+                       $r->{STATUS} = $self->build_status($host, $tree, $compiler, $rev);
+                       $r->{REVISION} = $rev;
+                       $r->{TIMESTAMP} = $stat->ctime;
+                       push(@ret, $r);                 
                }
        }
 
-       return %ret;
+       @ret = sort { return $b->{TIMESTAMP} - $a->{TIMESTAMP} } @ret;
+
+       return @ret;
 }
 
 sub has_host($$)