summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2015-07-04 18:06:29 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2015-07-04 19:24:47 +0100
commitb02532fd7d3c82864c76eecbfd99a1abc7e2c1b2 (patch)
tree62e2308c9693c9651ce73c20efad43039de4ee79
parent509a3e2079137b842228b6085b7bb31bbeedd631 (diff)
For non-Debian distros, debiantag() uses distro name a la DEP-14.
-rw-r--r--Debian/Dgit.pm6
-rw-r--r--debian/changelog1
-rwxr-xr-xdgit2
-rwxr-xr-xinfra/dgit-repos-policy-debian2
-rwxr-xr-xinfra/dgit-repos-server14
-rw-r--r--tests/lib2
-rwxr-xr-xtests/tests/debpolicy-dbretry2
-rwxr-xr-xtests/tests/debpolicy-newreject4
-rwxr-xr-xtests/tests/drs-push-rejects10
-rwxr-xr-xtests/tests/trustingpolicy-replay14
10 files changed, 28 insertions, 29 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index 37cbc51..2938ae1 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -101,10 +101,10 @@ sub debugcmd {
printcmd(\*DEBUG,$debugprefix.$extraprefix,@_) if $debuglevel>0;
}
-sub debiantag ($) {
- my ($v) = @_;
+sub debiantag ($$) {
+ my ($v,$distro) = @_;
$v =~ y/~:/_%/;
- return "debian/$v";
+ return "$distro/$v";
}
sub server_branch ($) { return "$branchprefix/$_[0]"; }
diff --git a/debian/changelog b/debian/changelog
index 333ad3d..ef2c842 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -90,6 +90,7 @@ dgit (0.23~) unstable; urgency=low
* Manpages: Other clarifications and improvements.
* Change realpath dependency to `coreutils (>= 8.23-1~) | realpath'
(Closes:#786955.)
+ * For non-Debian distros, debiantag() uses distro name a la DEP-14.
--
diff --git a/dgit b/dgit
index f0f1651..265978e 100755
--- a/dgit
+++ b/dgit
@@ -1570,7 +1570,7 @@ sub push_parse_changelog ($) {
$package = getfield $clogp, 'Source';
my $cversion = getfield $clogp, 'Version';
- my $tag = debiantag($cversion);
+ my $tag = debiantag($cversion, access_basedistro);
runcmd @git, qw(check-ref-format), $tag;
my $dscfn = dscfn($cversion);
diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian
index b21f797..0774f17 100755
--- a/infra/dgit-repos-policy-debian
+++ b/infra/dgit-repos-policy-debian
@@ -106,7 +106,7 @@ sub specific_suite_has_vsn_in_our_history ($) {
foreach my $entry (@$in_suite) {
my $vsn = $entry->{version};
die "$pkg ?" unless defined $vsn;
- my $tagref = "refs/tags/".debiantag $vsn;
+ my $tagref = "refs/tags/".debiantag $vsn, $distro;
printdebug " checking history suite=$suite vsn=$vsn tagref=$tagref\n";
$?=0; my $r = system qw(git show-ref --verify --quiet), $tagref;
return 1 if !$r;
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server
index a6f57be..ae25aaa 100755
--- a/infra/dgit-repos-server
+++ b/infra/dgit-repos-server
@@ -62,7 +62,7 @@ $SIG{__WARN__} = sub { die $_[0]; };
# 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/debian/* and refs/dgit/*
+# * we are updating only refs/tags/DISTRO/* and refs/dgit/*
# * and only one of each
# * and the tag does not already exist
# and
@@ -323,7 +323,7 @@ sub movetogarbage () {
ensuredir "$dgitrepos/_removed-tags";
open PREVIOUS, ">>", removedtagsfile or die removedtagsfile." $!";
- git_for_each_ref('refs/tags/'.debiantag('*'), sub {
+ git_for_each_ref('refs/tags/'.debiantag('*',$distro), sub {
my ($objid,$objtype,$fullrefname,$reftail) = @_;
print PREVIOUS "\n$objid $reftail .\n" or die $!;
}, $real);
@@ -458,7 +458,7 @@ sub readupdates () {
printdebug " upd.| $_\n";
m/^(\S+) (\S+) (\S+)$/ or die "$_ ?";
my ($old, $sha1, $refname) = ($1, $2, $3);
- if ($refname =~ m{^refs/tags/(?=debian/)}) {
+ if ($refname =~ m{^refs/tags/(?=$distro/)}) {
reject "pushing multiple tags!" if defined $tagname;
$tagname = $'; #';
$tagval = $sha1;
@@ -773,11 +773,9 @@ sub checks () {
tagh1('object') eq $commit or reject "tag refers to wrong commit";
tagh1('tag') eq $tagname or reject "tag name in tag is wrong";
- my $v = $version;
- $v =~ y/~:/_%/;
-
- printdebug "translated version $v\n";
- $tagname eq "debian/$v" or die;
+ my $expecttagname = debiantag $version, $distro;
+ printdebug "expected tag $expecttagname\n";
+ $tagname eq $expecttagname or die;
lockrealtree();
diff --git a/tests/lib b/tests/lib
index 055d5fa..a397425 100644
--- a/tests/lib
+++ b/tests/lib
@@ -370,7 +370,7 @@ t-refs-notexist () {
}
t-v-tag () {
- echo refs/tags/debian/${v//\~/_}
+ echo refs/tags/test-dummy/${v//\~/_}
}
t-pushed-good () {
diff --git a/tests/tests/debpolicy-dbretry b/tests/tests/debpolicy-dbretry
index 1b98f76..d9c2ea2 100755
--- a/tests/tests/debpolicy-dbretry
+++ b/tests/tests/debpolicy-dbretry
@@ -22,7 +22,7 @@ t-commit 'Make something to autotaint'
t-dgit build
t-dgit push --new
-autotaint=`t-git-get-ref "refs/tags/debian/$v"`
+autotaint=`t-git-get-ref "refs/tags/test-dummy/$v"`
git reset --hard start
t-commit 'Thing which will autotaint'
diff --git a/tests/tests/debpolicy-newreject b/tests/tests/debpolicy-newreject
index c238a5a..6987ef3 100755
--- a/tests/tests/debpolicy-newreject
+++ b/tests/tests/debpolicy-newreject
@@ -50,7 +50,7 @@ t-git-dir-check enoent
t-commit 'should require --deliberately...questionable'
t-dgit build
-t-expect-push-fail E:"tag debian/${vanished//./\\.} referred to this object.*all previously pushed versions were found to have been removed" \
+t-expect-push-fail E:"tag test-dummy/${vanished//./\\.} referred to this object.*all previously pushed versions were found to have been removed" \
t-dgit push --new
t-git-dir-check enoent
@@ -101,7 +101,7 @@ t-commit 'Check taint is no longer there'
t-dgit build
t-dgit push
-git checkout -b stoats debian/$vanished
+git checkout -b stoats test-dummy/$vanished
t-commit 'Simulate accidentally building on rejected version'
t-dgit build
t-expect-push-fail "HEAD is not a descendant of the archive's version" \
diff --git a/tests/tests/drs-push-rejects b/tests/tests/drs-push-rejects
index 3a70947..3ce1447 100755
--- a/tests/tests/drs-push-rejects
+++ b/tests/tests/drs-push-rejects
@@ -31,7 +31,7 @@ prep () {
cp $tmp/masters/* $tmp/.
tag_signer='-u Senatus'
tag_message="$p release $version for $suite ($csuite) [dgit]"
- tag_name=debian/$version
+ tag_name=test-dummy/$version
push_spec1="HEAD:refs/dgit/$csuite"
push_spec2="refs/tags/$tag_name"
push_spec="$push_spec1 $push_spec2"
@@ -101,7 +101,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 'pushing multiple tags' $push_spec HEAD:refs/tags/debian/wombat
+mustfail 'pushing multiple tags' $push_spec HEAD:refs/tags/test-dummy/wombat
prep unstable sid
mktag
@@ -128,11 +128,11 @@ mktag HEAD~:
mustfail 'tag refers to wrong kind of object' $push_spec
prep unstable sid
-tag_name=debian/wombat
+tag_name=test-dummy/wombat
mktag
-#git update-ref debian/$version debian/wombat
+#git update-ref test-dummy/$version test-dummy/wombat
mustfail 'tag name in tag is wrong' \
- refs/tags/debian/wombat:refs/tags/debian/$version $push_spec1
+ refs/tags/test-dummy/wombat:refs/tags/test-dummy/$version $push_spec1
prep unstable sid
mktag
diff --git a/tests/tests/trustingpolicy-replay b/tests/tests/trustingpolicy-replay
index 2736a52..f2a7043 100755
--- a/tests/tests/trustingpolicy-replay
+++ b/tests/tests/trustingpolicy-replay
@@ -20,7 +20,7 @@ t-dgit build
t-dgit push
t-rm-dput-dropping
-git checkout debian/1.0
+git checkout test-dummy/1.0
t-dgit build
t-dgit push --deliberately-fresh-repo
@@ -28,8 +28,8 @@ remote="`git config dgit-distro.test-dummy.git-url`/$p.git"
t-expect-push-fail 'Replay of previously-rewound upload' \
git push "$remote" \
- debian/1.1 \
- debian/1.1~0:refs/dgit/sid
+ test-dummy/1.1 \
+ test-dummy/1.1~0:refs/dgit/sid
git checkout master
@@ -57,11 +57,11 @@ prepare-replay () {
attempt-replay () {
local mpat=$1
- git show debian/$replayv | grep -e $delib
+ git show test-dummy/$replayv | grep -e $delib
t-expect-push-fail "$mpat" \
git push "$remote" \
- debian/$replayv \
- +debian/$replayv~0:refs/dgit/sid
+ test-dummy/$replayv \
+ +test-dummy/$replayv~0:refs/dgit/sid
}
prepare-replay --deliberately-fresh-repo
@@ -77,7 +77,7 @@ t-commit 'later version to stop not fast forward rewinding'
t-dgit build
t-dgit push
-attempt-replay "does not declare previously tags/debian/$v"
+attempt-replay "does not declare previously tags/test-dummy/$v"
echo ok.