diff options
Diffstat (limited to 'third_party/git/t/t3001-ls-files-others-exclude.sh')
-rwxr-xr-x | third_party/git/t/t3001-ls-files-others-exclude.sh | 301 |
1 files changed, 0 insertions, 301 deletions
diff --git a/third_party/git/t/t3001-ls-files-others-exclude.sh b/third_party/git/t/t3001-ls-files-others-exclude.sh deleted file mode 100755 index 1ec7cb57c7a8..000000000000 --- a/third_party/git/t/t3001-ls-files-others-exclude.sh +++ /dev/null @@ -1,301 +0,0 @@ -#!/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 && - for i in 1 2 3 4 5 6 7 8 - do - >$dir/a.$i - done -done ->"#ignore1" ->"#ignore2" ->"#hidden" - -cat >expect <<EOF -a.2 -a.4 -a.5 -a.8 -one/a.3 -one/a.4 -one/a.5 -one/a.7 -one/two/a.2 -one/two/a.3 -one/two/a.5 -one/two/a.7 -one/two/a.8 -three/a.2 -three/a.3 -three/a.4 -three/a.5 -three/a.8 -EOF - -echo '.gitignore -\#ignore1 -\#ignore2* -\#hid*n -output -expect -.gitignore -*.7 -!*.8' >.git/ignore - -echo '*.1 -/*.3 -!*.6' >.gitignore -echo '*.2 -two/*.4 -!*.7 -*.8' >one/.gitignore -echo '!*.2 -!*.8' >one/two/.gitignore - -allignores='.gitignore one/.gitignore one/two/.gitignore' - -test_expect_success \ - 'git ls-files --others with various exclude options.' \ - 'git ls-files --others \ - --exclude=\*.6 \ - --exclude-per-directory=.gitignore \ - --exclude-from=.git/ignore \ - >output && - test_cmp expect output' - -# Test \r\n (MSDOS-like systems) -printf '*.1\r\n/*.3\r\n!*.6\r\n' >.gitignore - -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 && - test_cmp expect output' - -test_expect_success 'setup skip-worktree gitignore' ' - git add $allignores && - git update-index --skip-worktree $allignores && - rm $allignores -' - -test_expect_success \ - 'git ls-files --others with various exclude options.' \ - 'git ls-files --others \ - --exclude=\*.6 \ - --exclude-per-directory=.gitignore \ - --exclude-from=.git/ignore \ - >output && - test_cmp expect output' - -test_expect_success 'restore gitignore' ' - git checkout --ignore-skip-worktree-bits $allignores && - rm .git/index -' - -cat > excludes-file <<\EOF -*.[1-8] -e* -\#* -EOF - -git config core.excludesFile excludes-file - -git -c status.displayCommentPrefix=true status | grep "^# " > output - -cat > expect << EOF -# .gitignore -# a.6 -# one/ -# output -# three/ -EOF - -test_expect_success 'git status honors core.excludesfile' \ - 'test_cmp expect output' - -test_expect_success 'trailing slash in exclude allows directory match(1)' ' - - git ls-files --others --exclude=one/ >output && - if grep "^one/" output - then - echo Ooops - false - else - : happy - fi - -' - -test_expect_success 'trailing slash in exclude allows directory match (2)' ' - - git ls-files --others --exclude=one/two/ >output && - if grep "^one/two/" output - then - echo Ooops - false - else - : happy - fi - -' - -test_expect_success 'trailing slash in exclude forces directory match (1)' ' - - >two && - git ls-files --others --exclude=two/ >output && - grep "^two" output - -' - -test_expect_success 'trailing slash in exclude forces directory match (2)' ' - - git ls-files --others --exclude=one/a.1/ >output && - grep "^one/a.1" output - -' - -test_expect_success 'negated exclude matches can override previous ones' ' - - git ls-files --others --exclude="a.*" --exclude="!a.1" >output && - grep "^a.1" output -' - -test_expect_success 'excluded directory overrides content patterns' ' - - git ls-files --others --exclude="one" --exclude="!one/a.1" >output && - if grep "^one/a.1" output - then - false - fi -' - -test_expect_success 'negated directory doesn'\''t affect content patterns' ' - - git ls-files --others --exclude="!one" --exclude="one/a.1" >output && - if grep "^one/a.1" output - then - false - fi -' - -test_expect_success 'subdirectory ignore (setup)' ' - mkdir -p top/l1/l2 && - ( - cd top && - git init && - echo /.gitignore >.gitignore && - echo l1 >>.gitignore && - echo l2 >l1/.gitignore && - >l1/l2/l1 - ) -' - -test_expect_success 'subdirectory ignore (toplevel)' ' - ( - cd top && - git ls-files -o --exclude-standard - ) >actual && - test_must_be_empty actual -' - -test_expect_success 'subdirectory ignore (l1/l2)' ' - ( - cd top/l1/l2 && - git ls-files -o --exclude-standard - ) >actual && - test_must_be_empty actual -' - -test_expect_success 'subdirectory ignore (l1)' ' - ( - cd top/l1 && - git ls-files -o --exclude-standard - ) >actual && - test_must_be_empty actual -' - -test_expect_success 'show/hide empty ignored directory (setup)' ' - rm top/l1/l2/l1 && - rm top/l1/.gitignore -' - -test_expect_success 'show empty ignored directory with --directory' ' - ( - cd top && - git ls-files -o -i --exclude l1 --directory - ) >actual && - echo l1/ >expect && - test_cmp expect actual -' - -test_expect_success 'hide empty ignored directory with --no-empty-directory' ' - ( - cd top && - git ls-files -o -i --exclude l1 --directory --no-empty-directory - ) >actual && - test_must_be_empty actual -' - -test_expect_success 'show/hide empty ignored sub-directory (setup)' ' - > top/l1/tracked && - ( - cd top && - git add -f l1/tracked - ) -' - -test_expect_success 'show empty ignored sub-directory with --directory' ' - ( - cd top && - git ls-files -o -i --exclude l1 --directory - ) >actual && - echo l1/l2/ >expect && - test_cmp expect actual -' - -test_expect_success 'hide empty ignored sub-directory with --no-empty-directory' ' - ( - cd top && - git ls-files -o -i --exclude l1 --directory --no-empty-directory - ) >actual && - test_must_be_empty actual -' - -test_expect_success 'pattern matches prefix completely' ' - git ls-files -i -o --exclude "/three/a.3[abc]" >actual && - test_must_be_empty actual -' - -test_expect_success 'ls-files with "**" patterns' ' - cat <<\EOF >expect && -a.1 -one/a.1 -one/two/a.1 -three/a.1 -EOF - git ls-files -o -i --exclude "**/a.1" >actual && - test_cmp expect actual -' - - -test_expect_success 'ls-files with "**" patterns and no slashes' ' - git ls-files -o -i --exclude "one**a.1" >actual && - test_must_be_empty actual -' - -test_done |