die "\ndgit-repos-server: reject: $why\n\n";
}
-sub runcmd {
- debugcmd '+',@_;
- $!=0; $?=0;
- my $r = system @_;
- die (shellquote @_)." $? $!" if $r;
-}
-
sub policyhook {
my ($policyallowbits, @polargs) = @_;
# => ($exitstatuspolicybitmap);
# defend against commits generated by #849041
if (!($policy & NOCOMMITCHECK)) {
- my @checks = qw(%ae %at
- %ce %ct);
+ my @checks = qw(%at
+ %ct);
my @chk = qw(git log -z);
push @chk, '--pretty=tformat:%H%n'.
(join "", map { $_, '%n' } @checks);
my @cmdbase = (qw(git send-pack), $destrepo);
push @cmdbase, qw(--force) if $policy & NOFFCHECK;
+ if ($ENV{GIT_QUARANTINE_PATH}) {
+ my $recv_wrapper = "$ENV{GIT_QUARANTINE_PATH}/dgit-recv-wrapper";
+ mkscript $recv_wrapper, <<'END';
+#!/bin/sh
+set -e
+unset GIT_QUARANTINE_PATH
+exec git receive-pack "$@"
+END
+ push @cmdbase, "--receive-pack=$recv_wrapper";
+ }
+
my @cmd = @cmdbase;
push @cmd, "$commit:refs/dgit/$suite",
"$tagval:refs/tags/$tagname";