wt-status: collect ignored files

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 2010-04-10 00:11:53 -07:00
parent f5b26b1d14
commit 6cb3f6b282
2 changed files with 18 additions and 0 deletions

View File

@ -42,6 +42,7 @@ void wt_status_prepare(struct wt_status *s)
s->index_file = get_index_file(); s->index_file = get_index_file();
s->change.strdup_strings = 1; s->change.strdup_strings = 1;
s->untracked.strdup_strings = 1; s->untracked.strdup_strings = 1;
s->ignored.strdup_strings = 1;
} }


static void wt_status_print_unmerged_header(struct wt_status *s) static void wt_status_print_unmerged_header(struct wt_status *s)
@ -382,6 +383,21 @@ static void wt_status_collect_untracked(struct wt_status *s)
free(ent); free(ent);
} }


if (s->show_ignored_files) {
dir.nr = 0;
dir.flags = DIR_SHOW_IGNORED | DIR_SHOW_OTHER_DIRECTORIES;
fill_directory(&dir, s->pathspec);
for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i];
if (!cache_name_is_other(ent->name, ent->len))
continue;
if (!match_pathspec(s->pathspec, ent->name, ent->len, 0, NULL))
continue;
string_list_insert(ent->name, &s->ignored);
free(ent);
}
}

free(dir.entries); free(dir.entries);
} }



View File

@ -41,6 +41,7 @@ struct wt_status {
int use_color; int use_color;
int relative_paths; int relative_paths;
int submodule_summary; int submodule_summary;
int show_ignored_files;
enum untracked_status_type show_untracked_files; enum untracked_status_type show_untracked_files;
char color_palette[WT_STATUS_UNMERGED+1][COLOR_MAXLEN]; char color_palette[WT_STATUS_UNMERGED+1][COLOR_MAXLEN];


@ -52,6 +53,7 @@ struct wt_status {
const char *prefix; const char *prefix;
struct string_list change; struct string_list change;
struct string_list untracked; struct string_list untracked;
struct string_list ignored;
}; };


void wt_status_prepare(struct wt_status *s); void wt_status_prepare(struct wt_status *s);