2005-07-25 00:26:09 +02:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
|
|
#
|
|
|
|
|
|
|
|
test_description='git-ls-files --others --exclude
|
|
|
|
|
|
|
|
This test runs git-ls-files --others and tests --exclude patterns.
|
|
|
|
'
|
|
|
|
|
|
|
|
. ./test-lib.sh
|
|
|
|
|
|
|
|
rm -fr one three
|
|
|
|
for dir in . one one/two three
|
|
|
|
do
|
|
|
|
mkdir -p $dir &&
|
2005-07-29 08:53:29 +02:00
|
|
|
for i in 1 2 3 4 5 6 7 8
|
2005-07-25 00:26:09 +02:00
|
|
|
do
|
|
|
|
>$dir/a.$i
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
cat >expect <<EOF
|
|
|
|
a.2
|
|
|
|
a.4
|
|
|
|
a.5
|
2005-07-29 08:53:29 +02:00
|
|
|
a.8
|
2005-07-25 00:26:09 +02:00
|
|
|
one/a.3
|
|
|
|
one/a.4
|
|
|
|
one/a.5
|
2005-07-29 08:53:29 +02:00
|
|
|
one/a.7
|
|
|
|
one/two/a.2
|
2005-07-25 00:26:09 +02:00
|
|
|
one/two/a.3
|
|
|
|
one/two/a.5
|
2005-07-29 08:53:29 +02:00
|
|
|
one/two/a.7
|
|
|
|
one/two/a.8
|
2005-07-25 00:26:09 +02:00
|
|
|
three/a.2
|
|
|
|
three/a.3
|
|
|
|
three/a.4
|
|
|
|
three/a.5
|
2005-07-29 08:53:29 +02:00
|
|
|
three/a.8
|
2005-07-25 00:26:09 +02:00
|
|
|
EOF
|
|
|
|
|
|
|
|
echo '.gitignore
|
|
|
|
output
|
|
|
|
expect
|
|
|
|
.gitignore
|
2005-07-29 08:53:29 +02:00
|
|
|
*.7
|
|
|
|
!*.8' >.git/ignore
|
2005-07-25 00:26:09 +02:00
|
|
|
|
|
|
|
echo '*.1
|
2005-07-29 08:53:29 +02:00
|
|
|
/*.3
|
|
|
|
!*.6' >.gitignore
|
2005-07-25 00:26:09 +02:00
|
|
|
echo '*.2
|
2005-07-29 08:53:29 +02:00
|
|
|
two/*.4
|
|
|
|
!*.7
|
|
|
|
*.8' >one/.gitignore
|
|
|
|
echo '!*.2
|
|
|
|
!*.8' >one/two/.gitignore
|
2005-07-25 00:26:09 +02:00
|
|
|
|
|
|
|
test_expect_success \
|
2005-07-29 08:53:29 +02:00
|
|
|
'git-ls-files --others with various exclude options.' \
|
2005-07-25 00:26:09 +02:00
|
|
|
'git-ls-files --others \
|
2005-07-29 08:53:29 +02:00
|
|
|
--exclude=\*.6 \
|
2005-07-25 00:26:09 +02:00
|
|
|
--exclude-per-directory=.gitignore \
|
|
|
|
--exclude-from=.git/ignore \
|
|
|
|
>output &&
|
2007-02-25 23:36:53 +01:00
|
|
|
git diff expect output'
|
2005-08-11 04:15:02 +02:00
|
|
|
|
2005-11-02 14:05:45 +01:00
|
|
|
# Test \r\n (MSDOS-like systems)
|
2006-02-12 19:05:34 +01:00
|
|
|
printf '*.1\r\n/*.3\r\n!*.6\r\n' >.gitignore
|
2005-11-02 14:05:45 +01:00
|
|
|
|
|
|
|
test_expect_success \
|
|
|
|
'git-ls-files --others with \r\n line endings.' \
|
|
|
|
'git-ls-files --others \
|
|
|
|
--exclude=\*.6 \
|
|
|
|
--exclude-per-directory=.gitignore \
|
|
|
|
--exclude-from=.git/ignore \
|
|
|
|
>output &&
|
2007-02-25 23:36:53 +01:00
|
|
|
git diff expect output'
|
2005-11-02 14:05:45 +01:00
|
|
|
|
2007-05-22 02:12:17 +02:00
|
|
|
cat > excludes-file << EOF
|
|
|
|
*.[1-8]
|
|
|
|
e*
|
|
|
|
EOF
|
|
|
|
|
|
|
|
git-config core.excludesFile excludes-file
|
|
|
|
|
|
|
|
git-runstatus | grep "^# " > output
|
|
|
|
|
|
|
|
cat > expect << EOF
|
|
|
|
# .gitignore
|
|
|
|
# a.6
|
|
|
|
# one/
|
|
|
|
# output
|
|
|
|
# three/
|
|
|
|
EOF
|
|
|
|
|
|
|
|
test_expect_success 'git-status honours core.excludesfile' \
|
|
|
|
'diff -u expect output'
|
|
|
|
|
2005-08-11 04:15:02 +02:00
|
|
|
test_done
|