summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rwxr-xr-xinfra/dgit-repos-server11
2 files changed, 13 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 3ee2de8..f25c5d4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -8,6 +8,8 @@ dgit (3.11~) unstable; urgency=medium
tree. Closes:#865863.
* dgit: rpush: Honour local git config from build host working
tree.
+ * infrastructure: Cope with new git-receive-pack which has
+ quarantine feature: ie, work around #867702.
* test suite: Cope with git restricting ext:: protocols.
--
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server
index 54a63f9..55dc81f 100755
--- a/infra/dgit-repos-server
+++ b/infra/dgit-repos-server
@@ -943,6 +943,17 @@ sub onwardpush () {
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";