summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2014-01-26 19:12:53 +0000
committerIan Jackson <ijackson@chiark.greenend.org.uk>2014-03-05 18:29:05 +0000
commitb58de5245d0a98e91a5f708d93c2eb6b4a198b47 (patch)
tree48f7fc9824e3d08a6308e31a4ff066c6be2370ef
parentccc64aa5e65a4093c03d6313d86abd879033b0ec (diff)
dgit-repos-server: plumb rejection message through to parent maybeinstallprospective
-rwxr-xr-xdgit-repos-server15
1 files changed, 14 insertions, 1 deletions
diff --git a/dgit-repos-server b/dgit-repos-server
index 2cc650d..ce48eeb 100755
--- a/dgit-repos-server
+++ b/dgit-repos-server
@@ -151,7 +151,12 @@ sub mkrepotmp () {
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";
}
@@ -208,6 +213,14 @@ END
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, "-|";