!$r or die "create new repo $dir failed: $r $!";
}
+sub movetogarbage () {
+ my $garbagerepo = "$dgitrepos/_tmp/${package}_garbage";
+ acquiretree($garbagerepo,1);
+ rmtree $garbagerepo;
+ rename $realdestrepo, $garbagerepo
+ or $! == ENOENT
+ or die "rename repo $realdestrepo to $garbagerepo: $!";
+}
+
+sub onwardpush () {
+ my @cmd = (qw(git send-pack), $destrepo);
+ push @cmd, qw(--force) if $policy & NOFFCHECK;
+ push @cmd, "$commit:refs/dgit/$suite",
+ "$tagval:refs/tags/$tagname");
+ debugcmd @cmd;
+ $!=0;
+ my $r = system @cmd;
+ !$r or die "onward push to $destrepo failed: $r $!";
+}
+
#----- git-receive-pack -----
sub fixmissing__git_receive_pack () {
debug "translated version $v";
$tagname eq "debian/$v" or die;
- my ($policy) = policyhook(NOFFCHECK, 'push',$package,
- $version,$suite,$tagname,
- join(",",@delberatelies));
+ $policy = policyhook(NOFFCHECK|FRESHREPO, 'push',$package,
+ $version,$suite,$tagname,
+ join(",",@delberatelies));
checksuite();
}
}
-sub onwardpush () {
- my @cmd = (qw(git send-pack), $destrepo,
- "$commit:refs/dgit/$suite",
- "$tagval:refs/tags/$tagname");
- debugcmd @cmd;
- $!=0;
- my $r = system @cmd;
- !$r or die "onward push failed: $r $!";
-}
-
sub stunthook () {
debug "stunthook";
chdir $workrepo or die "chdir $workrepo: $!";
my ($policy, $pollock) = policyhook(FRESHREPO,'check-package',$package);
if ($policy & FRESHREPO) {
- my $garbagerepo = "$dgitrepos/_tmp/${package}_garbage";
- acquiretree($garbagerepo,1);
- rmtree $garbagerepo;
- rename $realdestrepo, $garbagerepo
- or $! == ENOENT
- or die "rename repo $destrepo to $garbagerepo: $!";
+ movetogarbage;
}
close $pollock or die $!;