our $our_version = 'UNRELEASED'; ###substituted###
our $absurdity = undef; ###substituted###
-our @rpushprotovsn_support = qw(4 3 2); # 4 is new tag format
+our @rpushprotovsn_support = qw(4 5); # 5 drops tag format specification
our $protovsn;
our $cmd;
# > progress NBYTES
# [NBYTES message]
#
-# > supplementary-message NBYTES # $protovsn >= 3
+# > supplementary-message NBYTES
# [NBYTES message]
#
# main sequence:
#
# > param head DGIT-VIEW-HEAD
# > param csuite SUITE
-# > param tagformat new # $protovsn >= 4
+# > param tagformat new # $protovsn == 4
# > param maint-view MAINT-VIEW-HEAD
#
# > param buildinfo-filename P_V_X.buildinfo # zero or more times
if (!$we_are_responder) {
$supplementary_message = $msg;
return;
- } elsif ($protovsn >= 3) {
+ } else {
responder_send_command "supplementary-message ".length($msg)
or confess "$!";
print PO $msg or confess "$!";
sub file_in_archive_dummycat () { return undef; }
sub package_not_wholly_new_dummycat () { return undef; }
-#---------- tag format handling ----------
-# (untranslated, because everything should be new tag format by now)
-
-sub access_cfg_tagformats_can_splitbrain () {
- 1
-}
-
#---------- archive query entrypoints and rest of program ----------
sub canonicalise_suite () {
TfSuffix => '-maintview',
View => 'maint',
};
- } elsif ($dodep14tag eq 'no' ? 0
- : $dodep14tag eq 'want' ? access_cfg_tagformats_can_splitbrain
- : $dodep14tag eq 'always'
- ? (access_cfg_tagformats_can_splitbrain or fail <<END)
---dep14tag-always (or equivalent in config) means server must support
- both "new" and "maint" tag formats, but config says it doesn't.
-END
- : die "$dodep14tag ?") {
+ } elsif ($dodep14tag ne 'no') {
push @tagwants, {
TagFn => \&debiantag_maintview,
Objid => $dgithead,
responder_send_command("param head $dgithead");
responder_send_command("param csuite $csuite");
responder_send_command("param isuite $isuite");
- responder_send_command("param tagformat new");
+ responder_send_command("param tagformat new"); # needed in $protovsn==4
if (defined $maintviewhead) {
- confess "internal error (protovsn=$protovsn)"
- if defined $protovsn and $protovsn < 4;
responder_send_command("param maint-view $maintviewhead");
}
# a good error message)
sub rpush_handle_protovsn_bothends () {
- if ($protovsn < 4) {
- fail "negotiated protocol version $protovsn but need at least 4";
- }
}
our $i_tmp;
changedir $i_tmp;
($protovsn) = initiator_expect { m/^dgit-remote-push-ready (\S+)/ };
die "$protovsn ?" unless grep { $_ eq $protovsn } @rpushprotovsn_support;
- $supplementary_message = '' unless $protovsn >= 3;
for (;;) {
my ($icmd,$iargs) = initiator_expect {
pushing();
rpush_handle_protovsn_bothends();
- fail f_ "rpush negotiated protocol version %s".
- " which does not support quilt mode %s",
- $protovsn, $quilt_mode
- if quiltmode_splitbrain && $protovsn < 4;
-
my @localpaths = i_method "i_want", $keyword;
printdebug "[[ $keyword @localpaths\n";
foreach my $localpath (@localpaths) {
my $maintview = $i_param{'maint-view'};
die if defined $maintview && $maintview =~ m/[^0-9a-f]/;
- if ($protovsn >= 4) {
+ if ($protovsn == 4) {
my $p = $i_param{'tagformat'} // '<undef>';
$p eq 'new'
or badproto \*RO, "tag format mismatch: $p vs. new";
sub build_check_quilt_splitbrain () {
build_maybe_quilt_fixup();
-
- if ($do_split_brain) {
- fail <<END unless access_cfg_tagformats_can_splitbrain;
-quilt mode $quilt_mode requires split view so server needs to support
- both "new" and "maint" tag formats, but config says it doesn't.
-END
- }
}
sub unpack_playtree_need_cd_work ($) {