41 lines
1.1 KiB
41 lines
1.1 KiB
#!/bin/sh |
|
|
|
test_description='git receive-pack with alternate ref filtering' |
|
|
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup' ' |
|
test_commit base && |
|
git clone -s --bare . fork && |
|
git checkout -b public/branch master && |
|
test_commit public && |
|
git checkout -b private/branch master && |
|
test_commit private |
|
' |
|
|
|
extract_haves () { |
|
depacketize | perl -lne '/^(\S+) \.have/ and print $1' |
|
} |
|
|
|
test_expect_success 'with core.alternateRefsCommand' ' |
|
write_script fork/alternate-refs <<-\EOF && |
|
git --git-dir="$1" for-each-ref \ |
|
--format="%(objectname)" \ |
|
refs/heads/public/ |
|
EOF |
|
test_config -C fork core.alternateRefsCommand ./alternate-refs && |
|
git rev-parse public/branch >expect && |
|
printf "0000" | git receive-pack fork >actual && |
|
extract_haves <actual >actual.haves && |
|
test_cmp expect actual.haves |
|
' |
|
|
|
test_expect_success 'with core.alternateRefsPrefixes' ' |
|
test_config -C fork core.alternateRefsPrefixes "refs/heads/private" && |
|
git rev-parse private/branch >expect && |
|
printf "0000" | git receive-pack fork >actual && |
|
extract_haves <actual >actual.haves && |
|
test_cmp expect actual.haves |
|
' |
|
|
|
test_done
|
|
|