On Tue, Oct 17, 2017 at 03:10:11PM +0200, Johannes Schindelin wrote: > 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. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > Published-As: https://github.com/dscho/git/releases/tag/submodule-in-excluded-v1 > Fetch-It-Via: git fetch https://github.com/dscho/git submodule-in-excluded-v1 > dir.c | 2 +- > t/t7061-wtstatus-ignore.sh | 14 ++++++++++++++ > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/dir.c b/dir.c > index 1d17b800cf3..9987011da57 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 fc6013ba3c8..8c849a4cd2f 100755 > --- a/t/t7061-wtstatus-ignore.sh > +++ b/t/t7061-wtstatus-ignore.sh > @@ -272,4 +272,18 @@ 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 && > + ( > + cd tracked/submodule && > + test_commit initial > + ) && Could this use test_commit -C tracked/submodule initial? > + git status --porcelain --ignored -u tracked/submodule >actual && > + test_cmp expected actual > +' > + > test_done > > base-commit: 111ef79afe185f8731920569450f6a65320f5d5f > -- > 2.14.2.windows.3