chiark / gitweb /
Tag change: Declare intent in docs etc.
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 17 Jul 2016 13:21:42 +0000 (14:21 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 31 Jul 2016 20:50:00 +0000 (21:50 +0100)
Provide debiantag_new as well as debiantag_old.  Change the docs
and an important comment.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Debian/Dgit.pm
TODO.BRANCH
dgit.7
infra/dgit-repos-server

index 979dd427fcf77fc332a14c2272936809f3e6fb7c..fb983c1a023b2e44d49048255c89dd3ea7797e4a 100644 (file)
@@ -19,7 +19,7 @@ BEGIN {
     $VERSION     = 1.00;
     @ISA         = qw(Exporter);
     @EXPORT      = qw(setup_sigwarn
     $VERSION     = 1.00;
     @ISA         = qw(Exporter);
     @EXPORT      = qw(setup_sigwarn
-                      debiantag_old server_branch server_ref
+                      debiantag_old debiantag_new server_branch server_ref
                       stat_exists link_ltarget
                      hashfile
                       fail ensuredir executable_on_path
                       stat_exists link_ltarget
                      hashfile
                       fail ensuredir executable_on_path
@@ -131,6 +131,12 @@ sub debiantag_old ($$) {
     return "$distro/$v";
 }
 
     return "$distro/$v";
 }
 
+sub debiantag_new ($$) { 
+    my ($v,$distro) = @_;
+    $v =~ y/~:/_%/;
+    return "archive/$distro/$v";
+}
+
 sub server_branch ($) { return "$branchprefix/$_[0]"; }
 sub server_ref ($) { return "refs/".server_branch($_[0]); }
 
 sub server_branch ($) { return "$branchprefix/$_[0]"; }
 sub server_ref ($) { return "refs/".server_branch($_[0]); }
 
index 93eda99fcc30796ce399bc8ead39220dd3a36cf4..b2908422d86feebd34ac16caff4942310b5969ea 100644 (file)
@@ -6,8 +6,6 @@ Tag rename unfinished business
  - i_resp_previously, previously should include which tags ?
      replay prevention  all of them
  - rpush negotiation for which tag to sign
  - i_resp_previously, previously should include which tags ?
      replay prevention  all of them
  - rpush negotiation for which tag to sign
- - big comment in dgit-repos-server (search for `we are updating only')
- - dgit-repos-server readupdates tag regexp
  - test suite tests/lib
  - many actual tests
 
  - test suite tests/lib
  - many actual tests
 
diff --git a/dgit.7 b/dgit.7
index f594093b36e041ed4bfbe93cf5d5b1a4d55c6b3b..d57cff72f59a3d9ab109b661670ebb8270bfbfc3 100644 (file)
--- a/dgit.7
+++ b/dgit.7
@@ -32,8 +32,9 @@ normally the dgit-repos repo for the package will be accessible via
 the remote name `origin'.
 
 dgit push will also make signed tags called
 the remote name `origin'.
 
 dgit push will also make signed tags called
-.BI debian/ version
-(a la DEP-14) and push them to dgit-repos.  These are used at the
+.BI archive/debian/ version
+(with version encoded a la DEP-14)
+and push them to dgit-repos.  These are used at the
 server to authenticate pushes.
 
 dgit push can operate on any commit which is a descendant of the
 server to authenticate pushes.
 
 dgit push can operate on any commit which is a descendant of the
index ea223a0c33bddcd18fe5089ac74013a878dd0b89..3c8734194c13368e04750da23fd027a8165a22a7 100755 (executable)
@@ -69,7 +69,7 @@ setup_sigwarn();
 #   as a result of this the stunt pre-receive hook runs; it does this:
 #    + understand what refs we are allegedly updating and
 #      check some correspondences:
 #   as a result of this the stunt pre-receive hook runs; it does this:
 #    + understand what refs we are allegedly updating and
 #      check some correspondences:
-#        * we are updating only refs/tags/DISTRO/* and refs/dgit/*
+#        * we are updating only refs/tags/[archive/]DISTRO/* and refs/dgit/*
 #        * and only one of each
 #        * and the tag does not already exist
 #      and
 #        * and only one of each
 #        * and the tag does not already exist
 #      and
@@ -86,7 +86,7 @@ setup_sigwarn();
 #        * the signed tag must refer to a commit
 #        * the signed tag commit must be the refs/dgit value
 #        * the name in the signed tag must correspond to its ref name
 #        * the signed tag must refer to a commit
 #        * the signed tag commit must be the refs/dgit value
 #        * the name in the signed tag must correspond to its ref name
-#        * the tag name must be debian/<version> (massaged as needed)
+#        * the tag name must be [archive/]debian/<version> (massaged as needed)
 #        * the suite is one of those permitted
 #        * the signed tag has a suitable name
 #        * run the "push" policy hook
 #        * the suite is one of those permitted
 #        * the signed tag has a suitable name
 #        * run the "push" policy hook