summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2016-07-17 14:21:42 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2016-07-31 21:50:00 +0100
commit2fe42d36da42a62e8082d0d1c4c35943e8281e9e (patch)
tree49a6a4d9e795aa942adf2088d650d83bdaab0c2c
parent26f2213a36af62d526a41ad96caef7f3c4aa507a (diff)
Tag change: Declare intent in docs etc.
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>
-rw-r--r--Debian/Dgit.pm8
-rw-r--r--TODO.BRANCH2
-rw-r--r--dgit.75
-rwxr-xr-xinfra/dgit-repos-server4
4 files changed, 12 insertions, 7 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index 979dd42..fb983c1 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -19,7 +19,7 @@ BEGIN {
$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
@@ -131,6 +131,12 @@ sub debiantag_old ($$) {
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]); }
diff --git a/TODO.BRANCH b/TODO.BRANCH
index 93eda99..b290842 100644
--- a/TODO.BRANCH
+++ b/TODO.BRANCH
@@ -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
- - 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
diff --git a/dgit.7 b/dgit.7
index f594093..d57cff7 100644
--- 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
-.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
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server
index ea223a0..3c87341 100755
--- a/infra/dgit-repos-server
+++ b/infra/dgit-repos-server
@@ -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:
-# * 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
@@ -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 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