Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- builtin/list-files.c | 12 ++++++++++++ wt-status.c | 8 ++++++++ wt-status.h | 2 ++ 3 files changed, 22 insertions(+) diff --git a/builtin/list-files.c b/builtin/list-files.c index 228c39b..fc9c8d4 100644 --- a/builtin/list-files.c +++ b/builtin/list-files.c @@ -365,6 +365,10 @@ static void wt_status_populate(struct item_list *result, if (show_ignored) ws.show_ignored_files = 1; ws.no_rename = 1; + ws.show_index_changes = show_unmerged || show_added || + show_modified || show_deleted; + ws.show_worktree_changes = show_unmerged || show_wt_added || + show_wt_modified || show_wt_deleted; ws.relative_paths = 0; ws.use_color = 0; ws.fp = NULL; @@ -538,6 +542,14 @@ int cmd_list_files(int argc, const char **argv, const char *cmd_prefix) if (!show_cached && !show_untracked && !show_ignored && !show_unmerged && !show_changed) show_cached = 1; + if (show_unmerged) { + int i; + for (i = 0; i < the_index.cache_nr; i++) + if (ce_stage(the_index.cache[i])) + break; + if (i == the_index.cache_nr) + show_unmerged = 0; + } if (want_color(use_color)) parse_ls_color(); diff --git a/wt-status.c b/wt-status.c index ba9b56c..ce149b9 100644 --- a/wt-status.c +++ b/wt-status.c @@ -126,6 +126,8 @@ void wt_status_prepare(struct wt_status *s) memcpy(s->color_palette, default_wt_status_colors, sizeof(default_wt_status_colors)); s->show_untracked_files = SHOW_NORMAL_UNTRACKED_FILES; + s->show_index_changes = 1; + s->show_worktree_changes = 1; s->use_color = -1; s->relative_paths = 1; s->branch = resolve_refdup("HEAD", 0, sha1, NULL); @@ -493,6 +495,9 @@ static void wt_status_collect_changes_worktree(struct wt_status *s) { struct rev_info rev; + if (!s->show_worktree_changes) + return; + init_revisions(&rev, NULL); setup_revisions(0, NULL, &rev, NULL); rev.diffopt.output_format |= DIFF_FORMAT_CALLBACK; @@ -514,6 +519,9 @@ static void wt_status_collect_changes_index(struct wt_status *s) struct rev_info rev; struct setup_revision_opt opt; + if (!s->show_index_changes) + return; + init_revisions(&rev, NULL); memset(&opt, 0, sizeof(opt)); opt.def = s->is_initial ? EMPTY_TREE_SHA1_HEX : s->reference; diff --git a/wt-status.h b/wt-status.h index dc94f35..1d7ad3a 100644 --- a/wt-status.h +++ b/wt-status.h @@ -57,6 +57,8 @@ struct wt_status { int show_ignored_files; int no_rename; enum untracked_status_type show_untracked_files; + int show_index_changes; + int show_worktree_changes; const char *ignore_submodule_arg; char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN]; unsigned colopts; -- 2.3.0.rc1.137.g477eb31 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html