diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-11-15 12:04:54 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-11-15 12:04:54 +0900 |
commit | 21deee3cabce7d58c50992f57a224e52187a1d26 (patch) | |
tree | 02919a42ce50eb8c43d22264fc2cb141a2101a7c | |
parent | Merge branch 'ao/check-resolve-ref-unsafe-result' into maint (diff) | |
parent | status: do not get confused by submodules in excluded directories (diff) | |
download | tgif-21deee3cabce7d58c50992f57a224e52187a1d26.tar.xz |
Merge branch 'js/submodule-in-excluded' into maint
"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
-rw-r--r-- | dir.c | 2 | ||||
-rwxr-xr-x | t/t7061-wtstatus-ignore.sh | 11 |
2 files changed, 12 insertions, 1 deletions
@@ -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 |