43 lines
838 B
43 lines
838 B
#!/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
|
|
|