chiark / gitweb /
docs changes
[dgit.git] / dgit
diff --git a/dgit b/dgit
index b25c4a3d9ce558007c80321bbc7b31a88a78b040..78b05f9edcd3a7bd2d2e13f91aca7a3a2dd72ce8 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -209,7 +209,7 @@ sub parsechangelog {
     return $c;
 }
 
-our $rmad;
+our %rmad;
 
 sub archive_query () {
     my $query = access_cfg('archive-query');
@@ -218,13 +218,15 @@ sub archive_query () {
     my $proto = $1;
     my $url = $'; #';
     die unless $proto eq 'madison';
-    $rmad ||= cmdoutput qw(rmadison -asource),"-s$suite","-u$url",$package;
+    $rmad{$package} ||= cmdoutput
+       qw(rmadison -asource),"-s$suite","-u$url",$package;
+    my $rmad = $rmad{$package};
     if (!length $rmad) {
        return ();
     }
     $rmad =~ m{^ \s*( [^ \t|]+ )\s* \|
                  \s*( [^ \t|]+ )\s* \|
-                 \s*( [^ \t|/]+ )(?:/([^ \t|/]+)) \s* \|
+                 \s*( [^ \t|/]+ )(?:/([^ \t|/]+))? \s* \|
                  \s*( [^ \t|]+ )\s* }x or die "$rmad $?";
     $1 eq $package or die "$rmad $package ?";
     my $vsn = $2;
@@ -429,7 +431,7 @@ sub rev_parse ($) {
 
 sub is_fast_fwd ($$) {
     my ($ancestor,$child) = @_;
-    my $mb = cmdoutput @git, qw(merge-base), $dsc_hash, $upload_hash;
+    my $mb = cmdoutput @git, qw(merge-base), $ancestor, $child;
     return rev_parse($mb) eq rev_parse($ancestor);
 }