summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2017-07-08 19:59:41 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2017-07-08 19:59:42 +0100
commitdd16a85d0df7e5b55a49b1c80aa769946f1ebb21 (patch)
tree005a3310f71237de0475a1703e8bac85db3ff36a
parent865ccbc447b33ac2f2d66af0147463c2709a4339 (diff)
infrastructure: Cope with new git-receive-pack which has quarantine feature
Ie, work around #867702. See the bug there for discussion. (We are perhaps flying a little close to the wind with our wrapper script location, but it doesn't seem likely to break, to me.) Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-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";