chiark / gitweb /
infra: Drop support for old tag name on server side
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 28 Jun 2019 13:19:25 +0000 (14:19 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 28 Jun 2019 15:01:33 +0000 (16:01 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
infra/dgit-repos-server
tests/tests/drs-push-rejects

index a8b9400b5a4729a2c92e0c86d318385dd1512c6c..7c7262f50fce372dcfaf89c763fa3a223f04a9d7 100755 (executable)
@@ -539,15 +539,12 @@ sub readupdates () {
     STDIN->error and die $!;
 
     reject "push is missing tag ref update" unless %tags;
-    my @newtags = grep { m#^archive/# } keys %tags;
-    my @omtags = grep { !m#^archive/# } keys %tags;
-    reject "pushing too many similar tags" if @newtags>1 || @omtags>1;
-    if (@newtags) {
-       ($tagname) = @newtags;
-       ($maint_tagname) = @omtags;
-    } else {
-       ($tagname) = @omtags or die;
-    }
+    my @dtags = grep { m#^archive/# } keys %tags;
+    reject "need exactly one archive/* tag" if @dtags!=1;
+    my @mtags = grep { !m#^archive/# } keys %tags;
+    reject "pushing too many non-dgit tags" if @mtags>1;
+    ($tagname) = @dtags;
+    ($maint_tagname) = @mtags;
     $tagval = $tags{$tagname};
     $maint_tagval = $tags{$maint_tagname // ''};
 
@@ -862,8 +859,7 @@ sub checks () {
     grep { $tagname eq $_ } @expecttagnames or die;
 
     foreach my $othertag (grep { $_ ne $tagname } @expecttagnames) {
-       reject "tag $othertag (pushed with differing dgit version)".
-           " already exists -".
+       reject "tag $othertag already exists -".
            " not replacing previously-pushed version"
            if git_get_ref "refs/tags/".$othertag;
     }
index 4c4a0569ebcb289aba732fb2e852d229379bd6a2..f102d9537efc1b84d1191a827e826eb5a90c35c7 100755 (executable)
@@ -110,7 +110,7 @@ mustfail 'push is missing tag ref update' $push_spec1
 mustfail 'push is missing head ref update' +$push_spec2
 mustfail 'pushing unexpected ref' $push_spec HEAD:refs/wombat
 mustfail 'pushing multiple heads' $push_spec HEAD:refs/dgit/wombat
-mustfail E:'pushing multiple tags|pushing too many similar tags' \
+mustfail E:'pushing multiple tags|pushing too many similar tags|need exactly one archive' \
        $push_spec HEAD:refs/tags/$tagpfx/wombat
 
 prep unstable sid