aboutsummaryrefslogtreecommitdiffstats
path: root/wt-status.c
diff options
context:
space:
mode:
authorSangeeta Jain <sangunb09@gmail.com>2020-11-10 14:09:00 +0530
committerJunio C Hamano <gitster@pobox.com>2020-12-08 14:27:35 -0800
commit8ef93124645f89c45c9ec3edd3b268b38154061a (patch)
tree6b5f8460317e3fa87f4b3ddd68541ff8f1ef656b /wt-status.c
parent2e673356aefa8ed19be3c878f966ad6189ecb510 (diff)
downloadgit-8ef93124645f89c45c9ec3edd3b268b38154061a.tar.gz
diff: do not show submodule with untracked files as "-dirty"
Git diff reports a submodule directory as -dirty even when there are only untracked files in the submodule directory. This is inconsistent with what `git describe --dirty` says when run in the submodule directory in that state. Make `--ignore-submodules=untracked` the default for `git diff` when there is no configuration variable or command line option, so that the command would not give '-dirty' suffix to a submodule whose working tree has untracked files, to make it consistent with `git describe --dirty` that is run in the submodule working tree. And also make `--ignore-submodules=none` the default for `git status` so that the user doesn't end up deleting a submodule that has uncommitted (untracked) files. Signed-off-by: Sangeeta Jain <sangunb09@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'wt-status.c')
-rw-r--r--wt-status.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/wt-status.c b/wt-status.c
index 7074bbdd53..c361d1d1e1 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -606,7 +606,9 @@ static void wt_status_collect_changes_worktree(struct wt_status *s)
if (s->ignore_submodule_arg) {
rev.diffopt.flags.override_submodule_config = 1;
handle_ignore_submodules_arg(&rev.diffopt, s->ignore_submodule_arg);
- }
+ } else if (!rev.diffopt.flags.ignore_submodule_set &&
+ s->show_untracked_files != SHOW_NO_UNTRACKED_FILES)
+ handle_ignore_submodules_arg(&rev.diffopt, "none");
rev.diffopt.format_callback = wt_status_collect_changed_cb;
rev.diffopt.format_callback_data = s;
rev.diffopt.detect_rename = s->detect_rename >= 0 ? s->detect_rename : rev.diffopt.detect_rename;