From b02532fd7d3c82864c76eecbfd99a1abc7e2c1b2 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 4 Jul 2015 18:06:29 +0100 Subject: For non-Debian distros, debiantag() uses distro name a la DEP-14. --- infra/dgit-repos-policy-debian | 2 +- infra/dgit-repos-server | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'infra') 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(); -- cgit v1.2.3