Skip to content
Permalink
ef79b1f870
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 184 lines (165 sloc) 3.23 KB
#!/bin/sh
test_description='test case exclude pathspec'
. ./test-lib.sh
test_expect_success 'setup' '
for p in file sub/file sub/sub/file sub/file2 sub/sub/sub/file sub2/file; do
if echo $p | grep /; then
mkdir -p `dirname $p`
fi &&
: >$p &&
git add $p &&
git commit -m $p
done &&
git log --oneline --format=%s >actual &&
cat <<EOF >expect &&
sub2/file
sub/sub/sub/file
sub/file2
sub/sub/file
sub/file
file
EOF
test_cmp expect actual
'
test_expect_success 'exclude only should error out' '
test_must_fail git log --oneline --format=%s -- ":(exclude)sub"
'
test_expect_success 't_e_i() exclude sub' '
git log --oneline --format=%s -- . ":(exclude)sub" >actual
cat <<EOF >expect &&
sub2/file
file
EOF
test_cmp expect actual
'
test_expect_success 't_e_i() exclude sub/sub/file' '
git log --oneline --format=%s -- . ":(exclude)sub/sub/file" >actual
cat <<EOF >expect &&
sub2/file
sub/sub/sub/file
sub/file2
sub/file
file
EOF
test_cmp expect actual
'
test_expect_success 't_e_i() exclude sub using mnemonic' '
git log --oneline --format=%s -- . ":!sub" >actual
cat <<EOF >expect &&
sub2/file
file
EOF
test_cmp expect actual
'
test_expect_success 't_e_i() exclude :(icase)SUB' '
git log --oneline --format=%s -- . ":(exclude,icase)SUB" >actual
cat <<EOF >expect &&
sub2/file
file
EOF
test_cmp expect actual
'
test_expect_success 't_e_i() exclude sub2 from sub' '
(
cd sub &&
git log --oneline --format=%s -- :/ ":/!sub2" >actual
cat <<EOF >expect &&
sub/sub/sub/file
sub/file2
sub/sub/file
sub/file
file
EOF
test_cmp expect actual
)
'
test_expect_success 't_e_i() exclude sub/*file' '
git log --oneline --format=%s -- . ":(exclude)sub/*file" >actual
cat <<EOF >expect &&
sub2/file
sub/file2
file
EOF
test_cmp expect actual
'
test_expect_success 't_e_i() exclude :(glob)sub/*/file' '
git log --oneline --format=%s -- . ":(exclude,glob)sub/*/file" >actual
cat <<EOF >expect &&
sub2/file
sub/sub/sub/file
sub/file2
sub/file
file
EOF
test_cmp expect actual
'
test_expect_success 'm_p_d() exclude sub' '
git ls-files -- . ":(exclude)sub" >actual
cat <<EOF >expect &&
file
sub2/file
EOF
test_cmp expect actual
'
test_expect_success 'm_p_d() exclude sub/sub/file' '
git ls-files -- . ":(exclude)sub/sub/file" >actual
cat <<EOF >expect &&
file
sub/file
sub/file2
sub/sub/sub/file
sub2/file
EOF
test_cmp expect actual
'
test_expect_success 'm_p_d() exclude sub using mnemonic' '
git ls-files -- . ":!sub" >actual
cat <<EOF >expect &&
file
sub2/file
EOF
test_cmp expect actual
'
test_expect_success 'm_p_d() exclude :(icase)SUB' '
git ls-files -- . ":(exclude,icase)SUB" >actual
cat <<EOF >expect &&
file
sub2/file
EOF
test_cmp expect actual
'
test_expect_success 'm_p_d() exclude sub2 from sub' '
(
cd sub &&
git ls-files -- :/ ":/!sub2" >actual
cat <<EOF >expect &&
../file
file
file2
sub/file
sub/sub/file
EOF
test_cmp expect actual
)
'
test_expect_success 'm_p_d() exclude sub/*file' '
git ls-files -- . ":(exclude)sub/*file" >actual
cat <<EOF >expect &&
file
sub/file2
sub2/file
EOF
test_cmp expect actual
'
test_expect_success 'm_p_d() exclude :(glob)sub/*/file' '
git ls-files -- . ":(exclude,glob)sub/*/file" >actual
cat <<EOF >expect &&
file
sub/file
sub/file2
sub/sub/sub/file
sub2/file
EOF
test_cmp expect actual
'
test_done