From fadb4820c4a0178ce76c24d7b48b7ea70210727a Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 25 Oct 2017 22:40:40 +0200 Subject: status: do not get confused by submodules in excluded directories We meticulously pass the `exclude` flag to the `treat_directory()` function so that we can indicate that files in it are excluded rather than untracked when recursing. But we did not yet treat submodules the same way. Because of that, `git status --ignored --untracked` with a submodule `submodule` in a gitignored `tracked/` would show the submodule in the "Untracked files" section, e.g. On branch master Untracked files: (use "git add ..." to include in what will be committed) tracked/submodule/ Ignored files: (use "git add -f ..." to include in what will be committed) tracked/submodule/initial.t Instead, we would want it to show the submodule in the "Ignored files" section: On branch master Ignored files: (use "git add -f ..." to include in what will be committed) tracked/submodule/ Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'dir.c') diff --git a/dir.c b/dir.c index 31f9343f9f..f279bc4cf5 100644 --- a/dir.c +++ b/dir.c @@ -1362,7 +1362,7 @@ static enum path_treatment treat_directory(struct dir_struct *dir, if (!(dir->flags & DIR_NO_GITLINKS)) { unsigned char sha1[20]; if (resolve_gitlink_ref(dirname, "HEAD", sha1) == 0) - return path_untracked; + return exclude ? path_excluded : path_untracked; } return path_recurse; } -- cgit v1.2.1