X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=eae6f24bde3895f21cf05a7b0e62869b24c821b9;hb=3fb35c205e2ee6e020c2e0173eb2d9c48a099617;hp=11f473ca8bf7c56096316094382db3f45f150a6e;hpb=1837d3b05b891491c548a4a3b869f5ed24239886;p=dgit.git diff --git a/dgit b/dgit index 11f473ca..eae6f24b 100755 --- a/dgit +++ b/dgit @@ -2083,11 +2083,9 @@ sub generate_commits_from_dsc () { complete_file_from_dsc('.', $fi) or next; - if (is_orig_file_in_dsc($f, \@dfi)) { - link $f, "../../../../$f" - or $!==&EEXIST - or die "$f $!"; - } + link $f, "../../../../$f" + or $!==&EEXIST + or die "$f $!"; } # We unpack and record the orig tarballs first, so that we only @@ -2843,8 +2841,10 @@ END }; if (parse_cfg_bool 'rewrite-map-enable', 'true', $rewrite_enable) { - my $lrf = $do_fetch->("rewrite map", $rewritemap) or return; - $mapref = $lrf.'/'.$rewritemap; + if (!defined $mapref) { + my $lrf = $do_fetch->("rewrite map", $rewritemap) or return; + $mapref = $lrf.'/'.$rewritemap; + } my $rewritemapdata = git_cat_file $mapref.':map'; if (defined $rewritemapdata && $rewritemapdata =~ m/^$dsc_hash(?:[ \t](\w+))/m) { @@ -4136,6 +4136,7 @@ END responder_send_file('changes',$changesfile); responder_send_command("param head $dgithead"); responder_send_command("param csuite $csuite"); + responder_send_command("param isuite $isuite"); responder_send_command("param tagformat $tagformat"); if (defined $maintviewhead) { die unless ($protovsn//4) >= 4; @@ -4440,7 +4441,6 @@ sub i_method { } sub cmd_rpush { - pushing(); my $host = nextarg; my $dir; if ($host =~ m/^((?:[^][]|\[[^][]*\])*)\:/) { @@ -4475,11 +4475,6 @@ sub cmd_rpush { die "$protovsn ?" unless grep { $_ eq $protovsn } @rpushprotovsn_support; $supplementary_message = '' unless $protovsn >= 3; - fail "rpush negotiated protocol version $protovsn". - " which does not support quilt mode $quilt_mode" - if quiltmode_splitbrain; - - rpush_handle_protovsn_bothends(); for (;;) { my ($icmd,$iargs) = initiator_expect { m/^(\S+)(?: (.*))?$/; @@ -4543,6 +4538,18 @@ our %i_wanted; sub i_resp_want ($) { my ($keyword) = @_; die "$keyword ?" if $i_wanted{$keyword}++; + + defined $i_param{'csuite'} or badproto \*RO, "premature desire, no csuite"; + $isuite = $i_param{'isuite'} // $i_param{'csuite'}; + die unless $isuite =~ m/^$suite_re$/; + + pushing(); + rpush_handle_protovsn_bothends(); + + fail "rpush negotiated protocol version $protovsn". + " which does not support quilt mode $quilt_mode" + if quiltmode_splitbrain; + my @localpaths = i_method "i_want", $keyword; printdebug "[[ $keyword @localpaths\n"; foreach my $localpath (@localpaths) { @@ -6096,6 +6103,8 @@ Specify +$specbranch to overwrite, discarding existing history END if $oldhash && !$force; + notpushing(); + my @dfi = dsc_files_info(); foreach my $fi (@dfi) { my $f = $fi->{Filename};