if (s->show_untracked_files != SHOW_ALL_UNTRACKED_FILES)
dir.flags |=
DIR_SHOW_OTHER_DIRECTORIES | DIR_HIDE_EMPTY_DIRECTORIES;
+ if (s->show_ignored_files)
+ dir.flags |= DIR_SHOW_IGNORED_TOO;
setup_standard_excludes(&dir);
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) &&
free(ent);
}
- if (s->show_ignored_files) {
- dir.nr = 0;
- dir.flags = DIR_SHOW_IGNORED;
- if (s->show_untracked_files != SHOW_ALL_UNTRACKED_FILES)
- dir.flags |= 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) &&
- match_pathspec(s->pathspec, ent->name, ent->len, 0, NULL))
- string_list_insert(&s->ignored, ent->name);
- free(ent);
- }
+ for (i = 0; i < dir.ignored_nr; i++) {
+ struct dir_entry *ent = dir.ignored[i];
+ if (cache_name_is_other(ent->name, ent->len) &&
+ match_pathspec(s->pathspec, ent->name, ent->len, 0, NULL))
+ string_list_insert(&s->ignored, ent->name);
+ free(ent);
}
free(dir.entries);
+ free(dir.ignored);
+ clear_directory(&dir);
if (advice_status_u_option) {
struct timeval t_end;
wt_status_print_trailer(s);
}
+static void show_revert_in_progress(struct wt_status *s,
+ struct wt_status_state *state,
+ const char *color)
+{
+ status_printf_ln(s, color, _("You are currently reverting commit %s."),
+ find_unique_abbrev(state->revert_head_sha1, DEFAULT_ABBREV));
+ if (advice_status_hints) {
+ if (has_unmerged(s))
+ status_printf_ln(s, color,
+ _(" (fix conflicts and run \"git revert --continue\")"));
+ else
+ status_printf_ln(s, color,
+ _(" (all conflicts fixed: run \"git revert --continue\")"));
+ status_printf_ln(s, color,
+ _(" (use \"git revert --abort\" to cancel the revert operation)"));
+ }
+ wt_status_print_trailer(s);
+}
+
static void show_bisect_in_progress(struct wt_status *s,
struct wt_status_state *state,
const char *color)
int get_detached_from)
{
struct stat st;
+ unsigned char sha1[20];
if (!stat(git_path("MERGE_HEAD"), &st)) {
state->merge_in_progress = 1;
state->bisect_in_progress = 1;
state->branch = read_and_strip_branch("BISECT_START");
}
+ if (!stat(git_path("REVERT_HEAD"), &st) &&
+ !get_sha1("REVERT_HEAD", sha1)) {
+ state->revert_in_progress = 1;
+ hashcpy(state->revert_head_sha1, sha1);
+ }
if (get_detached_from)
wt_status_get_detached_from(state);
show_rebase_in_progress(s, state, state_color);
else if (state->cherry_pick_in_progress)
show_cherry_pick_in_progress(s, state, state_color);
+ else if (state->revert_in_progress)
+ show_revert_in_progress(s, state, state_color);
if (state->bisect_in_progress)
show_bisect_in_progress(s, state, state_color);
}
if (advice_status_u_option && 2000 < s->untracked_in_ms) {
status_printf_ln(s, GIT_COLOR_NORMAL, "");
status_printf_ln(s, GIT_COLOR_NORMAL,
- _("It took %.2f seconds to enumerate untracked files."
- " 'status -uno'"),
- s->untracked_in_ms / 1000.0);
- status_printf_ln(s, GIT_COLOR_NORMAL,
- _("may speed it up, but you have to be careful not"
- " to forget to add"));
- status_printf_ln(s, GIT_COLOR_NORMAL,
- _("new files yourself (see 'git help status')."));
+ _("It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
+ "may speed it up, but you have to be careful not to forget to add\n"
+ "new files yourself (see 'git help status')."),
+ s->untracked_in_ms / 1000.0);
}
} else if (s->commitable)
status_printf_ln(s, GIT_COLOR_NORMAL, _("Untracked files not listed%s"),