summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorKarsten Blees <karsten.blees@gmail.com>2013-04-15 21:07:16 +0200
committerJunio C Hamano <gitster@pobox.com>2013-04-15 12:33:58 -0700
commit0104c9e7816e30701e4fdd9143889faacfa0eefa (patch)
treeba992276629d696438b04d9d9a6883e9f81a6bfb /dir.c
parent289ff5598fc4947fe0e6cfeb6db652e64894151c (diff)
downloadgit-0104c9e7816e30701e4fdd9143889faacfa0eefa.tar.gz
dir.c: git-status --ignored: don't list empty ignored directories
'git-status --ignored' lists ignored tracked directories without any ignored files if a tracked file happens to match an exclude pattern. Always exclude tracked files. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/dir.c b/dir.c
index 248cfea39f..4723cd537d 100644
--- a/dir.c
+++ b/dir.c
@@ -1153,16 +1153,13 @@ static int treat_file(struct dir_struct *dir, struct strbuf *path, int exclude,
struct path_exclude_check check;
int exclude_file = 0;
+ /* Always exclude indexed files */
+ if (index_name_exists(&the_index, path->buf, path->len, ignore_case))
+ return 1;
+
if (exclude)
exclude_file = !(dir->flags & DIR_SHOW_IGNORED);
else if (dir->flags & DIR_SHOW_IGNORED) {
- /* Always exclude indexed files */
- struct cache_entry *ce = index_name_exists(&the_index,
- path->buf, path->len, ignore_case);
-
- if (ce)
- return 1;
-
path_exclude_check_init(&check, dir);
if (!is_path_excluded(&check, path->buf, path->len, dtype))