mirror of
https://github.com/git/git.git
synced 2024-11-24 18:33:43 +08:00
dir.c: git-status --ignored: don't drop ignored directories
'git-status --ignored' drops ignored directories if they contain untracked files in an untracked sub directory. Fix it by getting exact (recursive) excluded status in treat_directory. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
85e7e81ccf
commit
560bb7a7a1
9
dir.c
9
dir.c
@ -1104,6 +1104,15 @@ static enum directory_treatment treat_directory(struct dir_struct *dir,
|
||||
|
||||
/* This is the "show_other_directories" case */
|
||||
|
||||
/* might be a sub directory in an excluded directory */
|
||||
if (!exclude) {
|
||||
struct path_exclude_check check;
|
||||
int dt = DT_DIR;
|
||||
path_exclude_check_init(&check, dir);
|
||||
exclude = is_path_excluded(&check, dirname, len, &dt);
|
||||
path_exclude_check_clear(&check);
|
||||
}
|
||||
|
||||
/*
|
||||
* We are looking for ignored files and our directory is not ignored,
|
||||
* check if it contains only ignored files
|
||||
|
@ -143,4 +143,31 @@ test_expect_success 'status ignored tracked directory and uncommitted file with
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<\EOF
|
||||
?? .gitignore
|
||||
?? actual
|
||||
?? expected
|
||||
!! tracked/
|
||||
EOF
|
||||
|
||||
test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' '
|
||||
rm -rf tracked/uncommitted &&
|
||||
mkdir tracked/ignored &&
|
||||
: >tracked/ignored/uncommitted &&
|
||||
git status --porcelain --ignored >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
cat >expected <<\EOF
|
||||
?? .gitignore
|
||||
?? actual
|
||||
?? expected
|
||||
!! tracked/ignored/uncommitted
|
||||
EOF
|
||||
|
||||
test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' '
|
||||
git status --porcelain --ignored -u >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user