sub reject ($) {
my ($why) = @_;
- debug " rejecting $why";
+ my $w = $ENV{'DGIT_DRS_WORK'}; # we are in stunthook
+ if (defined $w) {
+ open REJ, ">", "$w/drs-reject" or die $!;
+ print REJ $why, "\n" or die $!;
+ close REJ or die $!;
+ }
die "dgit-repos-server: reject: $why\n";
}
sub maybeinstallprospective () {
return if $destrepo eq $realdestrepo;
+ if (open REJ, "<", "$workrepo/drs-reject") {
+ $!=0; my $why = <REJ>;
+ chomp $why or die $!;
+ reject $why;
+ } else {
+ $!==&ENOENT or die $!;
+ }
+
debug " show-ref ($destrepo) ...";
my $child = open SR, "-|";
die;
die if $got{$wh}++;
}
+ $!=0; $?=0; close SR or $?==256 or die "$? $!";
+
debug "installprospective ?";
- die if grep { !$_ } values %got;
- $!=0; $?=0; close SR or die "$? $!";
+ die Dumper(\%got)." -- missing refs in new repo"
+ if grep { !$_ } values %got;
debug "install $destrepo => $realdestrepo";
rename $destrepo, $realdestrepo or die $!;