From: Junio C Hamano Date: Mon, 6 Nov 2017 04:11:26 +0000 (+0900) Subject: Merge branch 'js/submodule-in-excluded' X-Git-Tag: v2.16.0-rc0~176 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/da7996aaf75fcd58c0fb787c15ee9569140a2f9c?hp=4a1638cbd5ab1037cbf5cde652de0b041e952d55 Merge branch 'js/submodule-in-excluded' "git status --ignored -u" did not stop at a working tree of a separate project that is embedded in an ignored directory and listed files in that other project, instead of just showing the directory itself as ignored. * js/submodule-in-excluded: status: do not get confused by submodules in excluded directories --- diff --git a/dir.c b/dir.c index 1d17b800cf..9987011da5 100644 --- a/dir.c +++ b/dir.c @@ -1392,7 +1392,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; } diff --git a/t/t7061-wtstatus-ignore.sh b/t/t7061-wtstatus-ignore.sh index fc6013ba3c..0c394cf995 100755 --- a/t/t7061-wtstatus-ignore.sh +++ b/t/t7061-wtstatus-ignore.sh @@ -272,4 +272,15 @@ test_expect_success 'status ignored tracked directory with uncommitted file in t test_cmp expected actual ' +cat >expected <<\EOF +!! tracked/submodule/ +EOF + +test_expect_success 'status ignores submodule in excluded directory' ' + git init tracked/submodule && + test_commit -C tracked/submodule initial && + git status --porcelain --ignored -u tracked/submodule >actual && + test_cmp expected actual +' + test_done