| #!/bin/sh | 
 |  | 
 | test_description='ls-files --exclude does not affect index files' | 
 | . ./test-lib.sh | 
 |  | 
 | test_expect_success 'create repo with file' ' | 
 | 	echo content >file && | 
 | 	git add file && | 
 | 	git commit -m file && | 
 | 	echo modification >file | 
 | ' | 
 |  | 
 | check_output() { | 
 | test_expect_success "ls-files output contains file ($1)" " | 
 | 	echo '$2' >expect && | 
 | 	git ls-files --exclude-standard --$1 >output && | 
 | 	test_cmp expect output | 
 | " | 
 | } | 
 |  | 
 | check_all_output() { | 
 | 	check_output 'cached' 'file' | 
 | 	check_output 'modified' 'file' | 
 | } | 
 |  | 
 | check_all_output | 
 | test_expect_success 'add file to gitignore' ' | 
 | 	echo file >.gitignore | 
 | ' | 
 | check_all_output | 
 |  | 
 | test_expect_success 'ls-files -i lists only tracked-but-ignored files' ' | 
 | 	echo content >other-file && | 
 | 	git add other-file && | 
 | 	echo file >expect && | 
 | 	git ls-files -i --exclude-standard >output && | 
 | 	test_cmp expect output | 
 | ' | 
 |  | 
 | test_done |