chiark / gitweb /
remote fixes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Oct 2013 10:34:28 +0000 (11:34 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 23 Oct 2013 10:34:28 +0000 (11:34 +0100)
dgit

diff --git a/dgit b/dgit
index 5ea9c26..7052bf1 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -1268,13 +1268,18 @@ sub dopush () {
     responder_send_command("param head $head");
 
     my $tfn = sub { ".git/dgit/tag$_[0]"; };
-    my ($tagobjfn) =
-       $we_are_responder
-       ? responder_receive_files('signed-tag', $tfn->('.signed.tmp'))
-       : push_mktag($head,$clogp,$tag,
-                    "../$dscfn",
-                    $changesfile,$changesfile,
-                                $tfn);
+    my $tagobjfn;
+
+    if ($we_are_responder) {
+       $tagobjfn = $tfn->('.signed.tmp');
+       responder_receive_files('signed-tag', $tagobjfn);
+    } else {
+       $tagobjfn =
+           push_mktag($head,$clogp,$tag,
+                      "../$dscfn",
+                      $changesfile,$changesfile,
+                      $tfn);
+    }
 
     my $tag_obj_hash = cmdoutput @git, qw(hash-object -w -t tag), $tagobjfn;
     runcmd_ordryrun @git, qw(verify-tag), $tag_obj_hash;
@@ -1546,7 +1551,7 @@ sub i_resp_want ($) {
     foreach my $localpath (@localpaths) {
        protocol_send_file \*RI, $localpath;
     }
-    print RI "end-files\n" or die $!;
+    print RI "files-end\n" or die $!;
 }
 
 our ($i_clogp, $i_version, $i_tag, $i_dscfn);
@@ -1562,19 +1567,20 @@ sub i_localname_dsc {
 
 sub i_want_signed_tag {
     printdebug Dumper(\%i_param, $i_dscfn);
-    defined $i_param{'head'} && defined $i_dscfn
+    defined $i_param{'head'} && defined $i_dscfn && defined $i_clogp
        or badproto \*RO, "sequencing error";
     my $head = $i_param{'head'};
     die if $head =~ m/[^0-9a-f]/ || $head !~ m/^../;
 
-    push_parse_dsc $i_dscfn, 'remote dsc', 
+    push_parse_dsc $i_dscfn, 'remote dsc', $i_version;
 
-    push_mktag $head, $i_clogp, $i_tag,
-        $i_dscfn,
-        'remote.changes', 'remote changes',
-        'tag.tag';
+    my $tagobjfn =
+       push_mktag $head, $i_clogp, $i_tag,
+           $i_dscfn,
+           'remote.changes', 'remote changes',
+           sub { "tag$_[0]"; };
 
-    return 'tag.tag';
+    return $tagobjfn;
 }
 
 sub i_want_signed_dsc_changes {