Browse Source
* jk/git-connection-deadlock-fix: test core.gitproxy configuration send-pack: avoid deadlock on git:// push with failed pack-objects connect: let callers know if connection is a socket connect: treat generic proxy processes like ssh processes Conflicts: connect.cmaint
Junio C Hamano
14 years ago
4 changed files with 67 additions and 14 deletions
@ -0,0 +1,43 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
test_description='fetching via git:// using core.gitproxy' |
||||||
|
. ./test-lib.sh |
||||||
|
|
||||||
|
test_expect_success 'setup remote repo' ' |
||||||
|
git init remote && |
||||||
|
(cd remote && |
||||||
|
echo content >file && |
||||||
|
git add file && |
||||||
|
git commit -m one |
||||||
|
) |
||||||
|
' |
||||||
|
|
||||||
|
cat >proxy <<'EOF' |
||||||
|
#!/bin/sh |
||||||
|
echo >&2 "proxying for $*" |
||||||
|
cmd=`perl -e ' |
||||||
|
read(STDIN, $buf, 4); |
||||||
|
my $n = hex($buf) - 4; |
||||||
|
read(STDIN, $buf, $n); |
||||||
|
my ($cmd, $other) = split /\0/, $buf; |
||||||
|
# drop absolute-path on repo name |
||||||
|
$cmd =~ s{ /}{ }; |
||||||
|
print $cmd; |
||||||
|
'` |
||||||
|
echo >&2 "Running '$cmd'" |
||||||
|
exec $cmd |
||||||
|
EOF |
||||||
|
chmod +x proxy |
||||||
|
test_expect_success 'setup local repo' ' |
||||||
|
git remote add fake git://example.com/remote && |
||||||
|
git config core.gitproxy ./proxy |
||||||
|
' |
||||||
|
|
||||||
|
test_expect_success 'fetch through proxy works' ' |
||||||
|
git fetch fake && |
||||||
|
echo one >expect && |
||||||
|
git log -1 --format=%s FETCH_HEAD >actual && |
||||||
|
test_cmp expect actual |
||||||
|
' |
||||||
|
|
||||||
|
test_done |
Loading…
Reference in new issue