From 4a851667149e770ce7f146cb2a33477975bcc256 Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Thu, 14 Mar 2013 17:02:23 -0700 Subject: [PATCH] cache src_pkgs for a single file as it's highly likely to be the same. --- bin/debbugs-loadsql-versions | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bin/debbugs-loadsql-versions b/bin/debbugs-loadsql-versions index e1dc36cb..8ab98683 100755 --- a/bin/debbugs-loadsql-versions +++ b/bin/debbugs-loadsql-versions @@ -119,6 +119,7 @@ for my $file (@files) { my $fh = IO::File->new($file,'r') or die "Unable to open $file for reading: $!"; my @versions; + my %src_pkgs; while (<$fh>) { chomp; next unless length $_; @@ -128,14 +129,20 @@ for my $file (@files) { } close($fh); my $ancestor_sv; - for my $i (reverse 0..($#versions-1)) { - my $sp = $s->resultset('SrcPkg')->find({pkg => $versions[$i][0]}); + for my $i (reverse 0..($#versions)) { + my $sp; + if (not defined $src_pkgs{$versions[$i][0]}) { + $src_pkgs{$versions[$i][0]} = + $s->resultset('SrcPkg')->find({pkg => $versions[$i][0]}); + } + $sp = $src_pkgs{$versions[$i][0]}; + # There's probably something wrong if the source package + # doesn't exist, but we'll skip it for now next unless defined $sp; my $sv = $s->resultset('SrcVer')->find({src_pkg_id=>$sp->id(), ver => $versions[$i][1], }); if (defined $ancestor_sv and defined $sv and not defined $sv->based_on()) { - print "checking out for $versions[$i][1]\n"; $sv->update({based_on => $ancestor_sv->id()}) } $ancestor_sv = $sv; -- 2.39.5