die "dgit-repos-server: reject: $why\n";
}
-sub runcmd {
+sub debugcmd {
if ($debug) {
use Data::Dumper;
local $Data::Dumper::Indent = 0;
local $Data::Dumper::Terse = 1;
debug "|".Dumper(\@_);
}
+}
+
+sub runcmd {
+ debugcmd @_;
$!=0; $?=0;
my $r = system @_;
die "@_ $? $!" if $r;
mkrepotmp();
$destrepo = "$dgitrepos/_tmp/${package}_prospective";
acquiretree($destrepo, 1);
- my $r = system qw(cp -a --), "$dgitrepos/_template", "$destrepo";
+ my $template = "$dgitrepos/_template";
+ debug "fixmissing copy tempalate $template -> $destrepo";
+ my $r = system qw(cp -a --), $template, $destrepo;
!$r or die "create new repo failed failed: $r $!";
}
sub maybeinstallprospective () {
return if $destrepo eq $realdestrepo;
- debug " show-ref ...";
+ debug " show-ref ($destrepo) ...";
my $child = open SR, "-|";
defined $child or die $!;
die;
die if $got{$wh}++;
}
+ debug "installprospective ?";
die if grep { !$_ } values %got;
$!=0; $?=0; close SR or die "$? $!";
+ debug "install $destrepo => $realdestrepo";
rename $destrepo, $realdestrepo or die $!;
remove "$destrepo.lock" or die $!;
}
}
sub onwardpush () {
+ my @cmd = (qw(git send-pack), $destrepo,
+ "$commit:refs/dgit/$suite",
+ "$tagval:refs/tags/$tagname");
+ debugcmd @cmd;
$!=0;
- my $r = system (qw(git send-pack),
- $destrepo,
- "$commit:refs/dgit/$suite",
- "$tagval:refs/tags/$tagname");
+ my $r = system @cmd;
!$r or die "onward push failed: $r $!";
}
sub stunthook () {
debug "stunthook";
+ print Dumper(\$ENV{GIT_DIR});
chdir $workrepo or die "chdir $workrepo: $!";
mkdir "dgit-tmp" or $!==EEXIST or die $!;
readupdates();
verifytag();
checks();
onwardpush();
+ debug "stunthook done.";
}
#----- git-upload-pack -----