]> git.donarmstrong.com Git - debbugs.git/blobdiff - bin/debbugs-loadsql
use get_src_pkg_id when loading versions
[debbugs.git] / bin / debbugs-loadsql
index b97432685882e0fc1f9b25c5593d55f19e0fe459..302d3d649f8d0880be1d5af7091d00af14c8b0b7 100755 (executable)
@@ -351,19 +351,20 @@ sub add_versions {
             my $sp;
             if (not defined $src_pkgs{$versions[$i][0]}) {
                 $src_pkgs{$versions[$i][0]} =
-                    $s->resultset('SrcPkg')->find_or_create({pkg => $versions[$i][0]});
+                    $s->resultset('SrcPkg')->
+                   get_src_pkg_id($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=>$sp->id(),
+            my $sv = $s->resultset('SrcVer')->find({src_pkg=>$sp,
                                                     ver => $versions[$i][1],
                                                    });
             if (defined $ancestor_sv and defined $sv and not defined $sv->based_on()) {
-                $sv->update({based_on => $ancestor_sv->id()})
+                $sv->update({based_on => $ancestor_sv})
             }
-            $ancestor_sv = $sv;
+            $ancestor_sv = $sv->id();
         }
         $p->update() if $p;
     }
@@ -387,10 +388,10 @@ sub add_debinfo {
     }
     return unless @files;
     my $s = db_connect($options);
-    my %cache;
     $p->target(scalar @files) if $p;
     my $it = natatime 100, @files;
     while (my @v = $it->()) {
+       my %cache;
        my @debinfos;
        for my $file (@v) {
            my $fh = IO::File->new($file,'r') or
@@ -409,6 +410,10 @@ sub add_debinfo {
                    ($srcname,$srcver) = ($binarch,$srcname);
                    ($binarch) = $file =~ /_([^\.]+)\.debinfo/;
                }
+               if (not defined $srcver) {
+                   print STDERR "malformed debinfo (no srcver): $file\n";
+                   next;
+               }
                push @debinfos,
                    [$binname,$binver,$binarch,$srcname,$srcver,$ct_date];
            }