chiark / gitweb /
changelog: start 9.14
[dgit.git] / infra / dgit-repos-server
index 2b20d1ed08c92da1f3041233da0ced81d6c2d3a0..bbf1aa215a34e054b5b4532254865365c7f6e3b4 100755 (executable)
@@ -3,7 +3,7 @@
 #
 # git protocol proxy to check dgit pushes etc.
 #
-# Copyright (C) 2014-2016  Ian Jackson
+# Copyright (C) 2014-2017,2019  Ian Jackson
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -591,7 +591,8 @@ sub parsetag_general ($$) {
                if ($dgititemfn->()) {
                } elsif (s/^distro\=(\S+) //) {
                    $distrofn->($1);
-               } elsif (s/^[-+.=0-9a-z]\S* //) {
+               } elsif (s/^([-+.=0-9a-z]\S*) //) {
+                   printdebug " parsetag ignoring unrecognised \`$1'\n";
                } else {
                    die "unknown dgit info in tag ($_)";
                }
@@ -783,7 +784,7 @@ sub checktagnoreplay () {
     #     current head for the suite (there must be at least one).
     #
     #     This prevents any tag implying a NOFFCHECK push being
-    #     replayed to rewind from a different head.
+    #     replayed to overwrite a different head.
     #
     #     The possibility of an earlier ff-only push being replayed is
     #     eliminated as follows: the tag from such a push would still
@@ -1213,7 +1214,7 @@ END
            $upstreamc = $1;
        } elsif (s/^upstream-tag=(\S+) //) {
            $upstreamt = $1;
-       } elsif (s/^quilt=([-+0-9a-z]+) //) {
+       } elsif (s/^--quilt=([-+0-9a-z]+) //) {
            $quilt = $1;
        } else {
            return 0;
@@ -1262,7 +1263,7 @@ END
     $clogf->('Version', $version);
     $clogf->('Source',  $package);
 
-    @fetch = (@dgit, qw(fetch), $suite);
+    @fetch = (@dgit, qw(--for-push fetch), $suite);
     debugcmd "+",@_;
     $!=0; $?=-1;
     if (system @fetch) {
@@ -1282,8 +1283,9 @@ END
     if (defined $quilt) {
        push @dgitcmd, "--quilt=$quilt";
        if ($quilt =~ m/baredebian/) {
-           die "needed upstream commmitish with --quilt=baredebian";
-           push @dgitcmd, "--upstream-commitish=$upstreamc";
+           die "needed upstream commmitish with --quilt=baredebian"
+               unless defined $upstreamc;
+           push @dgitcmd, "--upstream-commitish=refs/tags/$upstreamt";
        }
     }
     push @dgitcmd, qw(push-source --new --overwrite), $suite;