dir.c: make 'git-status --ignored' work within leading directories
'git-status --ignored path/' doesn't list ignored files and directories within 'path' if some component of 'path' is classified as untracked. Disable the DIR_SHOW_OTHER_DIRECTORIES flag while traversing leading directories. This prevents treat_leading_path() with DIR_SHOW_IGNORED flag from aborting at the top level untracked directory. As a side effect, this also eliminates a recursive directory scan per leading directory level, as treat_directory() can no longer call read_directory_recursive() when called from treat_leading_path(). Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
c94ab01026
commit
be8a84c526
@ -32,6 +32,25 @@ test_expect_success 'status untracked directory with --ignored -u' '
|
||||
git status --porcelain --ignored -u >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
cat >expected <<\EOF
|
||||
?? untracked/uncommitted
|
||||
!! untracked/ignored
|
||||
EOF
|
||||
|
||||
test_expect_success 'status prefixed untracked directory with --ignored' '
|
||||
git status --porcelain --ignored untracked/ >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<\EOF
|
||||
?? untracked/uncommitted
|
||||
!! untracked/ignored
|
||||
EOF
|
||||
|
||||
test_expect_success 'status prefixed untracked sub-directory with --ignored -u' '
|
||||
git status --porcelain --ignored -u untracked/ >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<\EOF
|
||||
?? .gitignore
|
||||
|
Reference in New Issue
Block a user