t3001: test ls-files -o ignored/dir
authorJunio C Hamano <gitster@pobox.com>
Sat, 9 Jan 2010 07:07:17 +0000 (23:07 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 9 Jan 2010 07:11:40 +0000 (23:11 -0800)
When you have "t" directory that is marked as ignored in the top-level
.gitignore file (or $GIT_DIR/info/exclude), running

$ git ls-files -o --exclude-standard

from the top-level correctly excludes files in "t" directory, but
any of the following:

$ git ls-files -o --exclude-standard t/
$ cd t && git ls-files -o --exclude-standard

would show untracked files in that directory.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3001-ls-files-others-exclude.sh
index c65bca838881938e2f924cfe62b2c303dbd5b1cd..e3e4d714a1d9c27dc15b04dbad253c85dff71d97 100755 (executable)
@@ -153,4 +153,43 @@ test_expect_success 'negated exclude matches can override previous ones' '
        grep "^a.1" output
 '
 
+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 &&
+       >expect &&
+       test_cmp expect actual
+'
+
+test_expect_success 'subdirectory ignore (l1/l2)' '
+       (
+               cd top/l1/l2 &&
+               git ls-files -o --exclude-standard
+       ) >actual &&
+       >expect &&
+       test_cmp expect actual
+'
+
+test_expect_failure 'subdirectory ignore (l1)' '
+       (
+               cd top/l1 &&
+               git ls-files -o --exclude-standard
+       ) >actual &&
+       >expect &&
+       test_cmp expect actual
+'
+
 test_done