#!/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 cat >expect <.git/ignore echo '*.1 /*.3 !*.6' >.gitignore echo '*.2 two/*.4 !*.7 *.8' >one/.gitignore echo '!*.2 !*.8' >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 && git diff 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 && git diff expect output' 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' test_done