about summary refs log tree commit diff
path: root/third_party/git/t/t3003-ls-files-exclude.sh
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/t/t3003-ls-files-exclude.sh')
-rwxr-xr-xthird_party/git/t/t3003-ls-files-exclude.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/third_party/git/t/t3003-ls-files-exclude.sh b/third_party/git/t/t3003-ls-files-exclude.sh
new file mode 100755
index 000000000000..d5ec333131f9
--- /dev/null
+++ b/third_party/git/t/t3003-ls-files-exclude.sh
@@ -0,0 +1,40 @@
+#!/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