{"thread":{"id":"46984","subject":"[PATCH] status: do not get confused by submodules in excluded directories","startedAt":"2017-10-17T13:10:23Z","lastAt":"2017-10-26T02:28:39Z","messageCount":12,"participants":["Johannes Schindelin","Junio C Hamano","Kevin Daudt","Heiko Voigt","Stefan Beller"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"330541","messageId":"244d71f47336e985ae265573b7d523cd8b3943bd.1508244305.git.johannes.schindelin@gmx.de","threadId":"46984","inReplyTo":null,"subject":"[PATCH] status: do not get confused by submodules in excluded directories","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-10-17T13:10:11Z","receivedAt":"2017-10-17T13:10:23Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"We meticulously pass the `exclude` flag to the `treat_directory()`\nfunction so that we can indicate that files in it are excluded rather\nthan untracked when recursing.\n\nBut we did not yet treat submodules the same way.\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\nPublished-As: https://github.com/dscho/git/releases/tag/submodule-in-excluded-v1\nFetch-It-Via: git fetch https://github.com/dscho/git submodule-in-excluded-v1\n dir.c                      |  2 +-\n t/t7061-wtstatus-ignore.sh | 14 ++++++++++++++\n 2 files changed, 15 insertions(+), 1 deletion(-)\n\ndiff --git a/dir.c b/dir.c\nindex 1d17b800cf3..9987011da57 100644\n--- a/dir.c\n+++ b/dir.c\n@@ -1392,7 +1392,7 @@ static enum path_treatment treat_directory(struct dir_struct *dir,\n \t\tif (!(dir->flags & DIR_NO_GITLINKS)) {\n \t\t\tunsigned char sha1[20];\n \t\t\tif (resolve_gitlink_ref(dirname, \"HEAD\", sha1) == 0)\n-\t\t\t\treturn path_untracked;\n+\t\t\t\treturn exclude ? path_excluded : path_untracked;\n \t\t}\n \t\treturn path_recurse;\n \t}\ndiff --git a/t/t7061-wtstatus-ignore.sh b/t/t7061-wtstatus-ignore.sh\nindex fc6013ba3c8..8c849a4cd2f 100755\n--- a/t/t7061-wtstatus-ignore.sh\n+++ b/t/t7061-wtstatus-ignore.sh\n@@ -272,4 +272,18 @@ test_expect_success 'status ignored tracked directory with uncommitted file in t\n \ttest_cmp expected actual\n '\n \n+cat >expected <<\\EOF\n+!! tracked/submodule/\n+EOF\n+\n+test_expect_success 'status ignores submodule in excluded directory' '\n+\tgit init tracked/submodule &&\n+\t(\n+\t\tcd tracked/submodule &&\n+\t\ttest_commit initial\n+\t) &&\n+\tgit status --porcelain --ignored -u tracked/submodule >actual &&\n+\ttest_cmp expected actual\n+'\n+\n test_done\n\nbase-commit: 111ef79afe185f8731920569450f6a65320f5d5f\n-- \n2.14.2.windows.3\n"},{"id":"330895","messageId":"xmqqo9oxkts6.fsf@gitster.mtv.corp.google.com","threadId":"46984","inReplyTo":"244d71f47336e985ae265573b7d523cd8b3943bd.1508244305.git.johannes.schindelin@gmx.de","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-10-24T05:18:49Z","receivedAt":"2017-10-24T05:22:33Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n\n> We meticulously pass the `exclude` flag to the `treat_directory()`\n> function so that we can indicate that files in it are excluded rather\n> than untracked when recursing.\n>\n> But we did not yet treat submodules the same way.\n\n... \"because of that, we ended up showing <<what incorrect result in\nwhat situation>>\" would be a nice thing to have here, so that it can\nbe copied to the release notes for the bugfix.  \n\nHow far back a release do we want to make this fix applicable?  It\nseems that it applies cleanly to maint-2.13 without breaking from my\nquick test, so that is probably where I'll queue this, even though\nwe may no longer issue further maintenance releases on that track.\n\nAny comment from submodule folks?\n\nSorry that I didn't notice this was left unattended by anybody til\nnow.  Will queue while waiting for those who are into submodules to\nrespond.\n\nThanks.\n"},{"id":"330901","messageId":"20171024082029.GB7987@alpha.vpn.ikke.info","threadId":"46984","inReplyTo":"244d71f47336e985ae265573b7d523cd8b3943bd.1508244305.git.johannes.schindelin@gmx.de","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Kevin Daudt","fromEmail":"me@ikke.info","sentAt":"2017-10-24T08:20:29Z","receivedAt":"2017-10-24T08:20:37Z","isPatch":true,"sender":{"key":"me@ikke.info","avatar":"https://avatars.githubusercontent.com/u/135698?v=4"},"body":"On Tue, Oct 17, 2017 at 03:10:11PM +0200, Johannes Schindelin wrote:\n> We meticulously pass the `exclude` flag to the `treat_directory()`\n> function so that we can indicate that files in it are excluded rather\n> than untracked when recursing.\n> \n> But we did not yet treat submodules the same way.\n> \n> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n> ---\n> Published-As: https://github.com/dscho/git/releases/tag/submodule-in-excluded-v1\n> Fetch-It-Via: git fetch https://github.com/dscho/git submodule-in-excluded-v1\n>  dir.c                      |  2 +-\n>  t/t7061-wtstatus-ignore.sh | 14 ++++++++++++++\n>  2 files changed, 15 insertions(+), 1 deletion(-)\n> \n> diff --git a/dir.c b/dir.c\n> index 1d17b800cf3..9987011da57 100644\n> --- a/dir.c\n> +++ b/dir.c\n> @@ -1392,7 +1392,7 @@ static enum path_treatment treat_directory(struct dir_struct *dir,\n>  \t\tif (!(dir->flags & DIR_NO_GITLINKS)) {\n>  \t\t\tunsigned char sha1[20];\n>  \t\t\tif (resolve_gitlink_ref(dirname, \"HEAD\", sha1) == 0)\n> -\t\t\t\treturn path_untracked;\n> +\t\t\t\treturn exclude ? path_excluded : path_untracked;\n>  \t\t}\n>  \t\treturn path_recurse;\n>  \t}\n> diff --git a/t/t7061-wtstatus-ignore.sh b/t/t7061-wtstatus-ignore.sh\n> index fc6013ba3c8..8c849a4cd2f 100755\n> --- a/t/t7061-wtstatus-ignore.sh\n> +++ b/t/t7061-wtstatus-ignore.sh\n> @@ -272,4 +272,18 @@ test_expect_success 'status ignored tracked directory with uncommitted file in t\n>  \ttest_cmp expected actual\n>  '\n>  \n> +cat >expected <<\\EOF\n> +!! tracked/submodule/\n> +EOF\n> +\n> +test_expect_success 'status ignores submodule in excluded directory' '\n> +\tgit init tracked/submodule &&\n> +\t(\n> +\t\tcd tracked/submodule &&\n> +\t\ttest_commit initial\n> +\t) &&\n\nCould this use test_commit -C tracked/submodule initial?\n\n> +\tgit status --porcelain --ignored -u tracked/submodule >actual &&\n> +\ttest_cmp expected actual\n> +'\n> +\n>  test_done\n> \n> base-commit: 111ef79afe185f8731920569450f6a65320f5d5f\n> -- \n> 2.14.2.windows.3\n"},{"id":"330907","messageId":"20171024121536.GA88363@book.hvoigt.net","threadId":"46984","inReplyTo":"xmqqo9oxkts6.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Heiko Voigt","fromEmail":"hvoigt@hvoigt.net","sentAt":"2017-10-24T12:15:36Z","receivedAt":"2017-10-24T12:15:51Z","isPatch":true,"sender":{"key":"hvoigt@hvoigt.net","avatar":"https://avatars.githubusercontent.com/u/184958?v=4"},"body":"On Tue, Oct 24, 2017 at 02:18:49PM +0900, Junio C Hamano wrote:\n> Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n> \n> > We meticulously pass the `exclude` flag to the `treat_directory()`\n> > function so that we can indicate that files in it are excluded rather\n> > than untracked when recursing.\n> >\n> > But we did not yet treat submodules the same way.\n> \n> ... \"because of that, we ended up showing <<what incorrect result in\n> what situation>>\" would be a nice thing to have here, so that it can\n> be copied to the release notes for the bugfix.  \n\nYes I agree that would be nice here. It was not immediately obvious that\nthis only applies when using both flags: -u and --ignored.\n\nSeems to be a corner that not many people are using. At first I thought\na plain 'git status' would show that behavior...\n\n> How far back a release do we want to make this fix applicable?  It\n> seems that it applies cleanly to maint-2.13 without breaking from my\n> quick test, so that is probably where I'll queue this, even though\n> we may no longer issue further maintenance releases on that track.\n> \n> Any comment from submodule folks?\n> \n> Sorry that I didn't notice this was left unattended by anybody til\n> now.  Will queue while waiting for those who are into submodules to\n> respond.\n\nLooks good to me.\n\nCheers Heiko\n"},{"id":"330921","messageId":"CAGZ79kZk+4_Vzb8=ksa6iYLsYW=gopAuTEupbqintcV3bTxR9A@mail.gmail.com","threadId":"46984","inReplyTo":"20171024121536.GA88363@book.hvoigt.net","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Stefan Beller","fromEmail":"sbeller@google.com","sentAt":"2017-10-24T15:34:42Z","receivedAt":"2017-10-24T15:34:52Z","isPatch":true,"sender":{"key":"stefanbeller@gmail.com","avatar":"https://avatars.githubusercontent.com/u/455868?v=4"},"body":"On Tue, Oct 24, 2017 at 5:15 AM, Heiko Voigt <hvoigt@hvoigt.net> wrote:\n\n> Looks good to me.\n\nSame here,\n\nThanks,\nStefan\n"},{"id":"330978","messageId":"xmqqh8uoj9s6.fsf@gitster.mtv.corp.google.com","threadId":"46984","inReplyTo":"20171024121536.GA88363@book.hvoigt.net","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-10-25T01:28:25Z","receivedAt":"2017-10-25T01:28:31Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Heiko Voigt <hvoigt@hvoigt.net> writes:\n\n> On Tue, Oct 24, 2017 at 02:18:49PM +0900, Junio C Hamano wrote:\n>> Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n>> \n>> > We meticulously pass the `exclude` flag to the `treat_directory()`\n>> > function so that we can indicate that files in it are excluded rather\n>> > than untracked when recursing.\n>> >\n>> > But we did not yet treat submodules the same way.\n>> \n>> ... \"because of that, we ended up showing <<what incorrect result in\n>> what situation>>\" would be a nice thing to have here, so that it can\n>> be copied to the release notes for the bugfix.  \n>\n> Yes I agree that would be nice here. It was not immediately obvious that\n> this only applies when using both flags: -u and --ignored.\n\nDoes any of you care to fill in the <<blanks above>> then? ;-)\n\n> Looks good to me.\n>\n> Cheers Heiko\n"},{"id":"331018","messageId":"alpine.DEB.2.21.1.1710251522530.6482@virtualbox","threadId":"46984","inReplyTo":"20171024082029.GB7987@alpha.vpn.ikke.info","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-10-25T13:26:49Z","receivedAt":"2017-10-25T13:27:02Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi Kevin,\n\nOn Tue, 24 Oct 2017, Kevin Daudt wrote:\n\n> On Tue, Oct 17, 2017 at 03:10:11PM +0200, Johannes Schindelin wrote:\n> > diff --git a/t/t7061-wtstatus-ignore.sh b/t/t7061-wtstatus-ignore.sh\n> > index fc6013ba3c8..8c849a4cd2f 100755\n> > --- a/t/t7061-wtstatus-ignore.sh\n> > +++ b/t/t7061-wtstatus-ignore.sh\n> > @@ -272,4 +272,18 @@ test_expect_success 'status ignored tracked directory with uncommitted file in t\n> >  \ttest_cmp expected actual\n> >  '\n> >  \n> > +cat >expected <<\\EOF\n> > +!! tracked/submodule/\n> > +EOF\n> > +\n> > +test_expect_success 'status ignores submodule in excluded directory' '\n> > +\tgit init tracked/submodule &&\n> > +\t(\n> > +\t\tcd tracked/submodule &&\n> > +\t\ttest_commit initial\n> > +\t) &&\n> \n> Could this use test_commit -C tracked/submodule initial?\n\nYes! Thanks. For some reason, I did not even think that test_commit would\naccept the -C option.\n\nCiao,\nDscho\n"},{"id":"331019","messageId":"20171025140414.GA1368@book.hvoigt.net","threadId":"46984","inReplyTo":"xmqqh8uoj9s6.fsf@gitster.mtv.corp.google.com","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Heiko Voigt","fromEmail":"hvoigt@hvoigt.net","sentAt":"2017-10-25T14:04:14Z","receivedAt":"2017-10-25T14:05:07Z","isPatch":true,"sender":{"key":"hvoigt@hvoigt.net","avatar":"https://avatars.githubusercontent.com/u/184958?v=4"},"body":"On Wed, Oct 25, 2017 at 10:28:25AM +0900, Junio C Hamano wrote:\n> Heiko Voigt <hvoigt@hvoigt.net> writes:\n> \n> > On Tue, Oct 24, 2017 at 02:18:49PM +0900, Junio C Hamano wrote:\n> >> Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n> >> \n> >> > We meticulously pass the `exclude` flag to the `treat_directory()`\n> >> > function so that we can indicate that files in it are excluded rather\n> >> > than untracked when recursing.\n> >> >\n> >> > But we did not yet treat submodules the same way.\n> >> \n> >> ... \"because of that, we ended up showing <<what incorrect result in\n> >> what situation>>\" would be a nice thing to have here, so that it can\n> >> be copied to the release notes for the bugfix.  \n> >\n> > Yes I agree that would be nice here. It was not immediately obvious that\n> > this only applies when using both flags: -u and --ignored.\n> \n> Does any of you care to fill in the <<blanks above>> then? ;-)\n\nHow about:\n\nBecause of that, we ended up showing the submodule as untracked and its\ncontent as ignored files when using the --ignored and -u flags with git\nstatus.\n\n? But maybe Dscho also has some more information to add about his\nsituation?\n\nCheers Heiko\n"},{"id":"331039","messageId":"alpine.DEB.2.21.1.1710252238390.6482@virtualbox","threadId":"46984","inReplyTo":"20171025140414.GA1368@book.hvoigt.net","subject":"Re: [PATCH] status: do not get confused by submodules in excluded directories","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-10-25T20:39:17Z","receivedAt":"2017-10-25T20:39:31Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 25 Oct 2017, Heiko Voigt wrote:\n\n> On Wed, Oct 25, 2017 at 10:28:25AM +0900, Junio C Hamano wrote:\n> > Heiko Voigt <hvoigt@hvoigt.net> writes:\n> > \n> > > On Tue, Oct 24, 2017 at 02:18:49PM +0900, Junio C Hamano wrote:\n> > >> Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n> > >> \n> > >> > We meticulously pass the `exclude` flag to the `treat_directory()`\n> > >> > function so that we can indicate that files in it are excluded rather\n> > >> > than untracked when recursing.\n> > >> >\n> > >> > But we did not yet treat submodules the same way.\n> > >> \n> > >> ... \"because of that, we ended up showing <<what incorrect result in\n> > >> what situation>>\" would be a nice thing to have here, so that it can\n> > >> be copied to the release notes for the bugfix.  \n> > >\n> > > Yes I agree that would be nice here. It was not immediately obvious that\n> > > this only applies when using both flags: -u and --ignored.\n> > \n> > Does any of you care to fill in the <<blanks above>> then? ;-)\n> \n> How about:\n> \n> Because of that, we ended up showing the submodule as untracked and its\n> content as ignored files when using the --ignored and -u flags with git\n> status.\n> \n> ? But maybe Dscho also has some more information to add about his\n> situation?\n\nHe has... as part of v2, a substantially more detailed commit message will\nreach your inbox Real Soon Now.\n\nCiao,\nDscho\n"},{"id":"331040","messageId":"cover.1508964005.git.johannes.schindelin@gmx.de","threadId":"46984","inReplyTo":"244d71f47336e985ae265573b7d523cd8b3943bd.1508244305.git.johannes.schindelin@gmx.de","subject":"[PATCH v2 0/1] Do not handle submodules in excluded directories as untracked","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-10-25T20:40:36Z","receivedAt":"2017-10-25T20:40:48Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Anything in an excluded directory should be ignored, not only files and\ndirectories but also submodules.\n\nChanges since v1:\n\n- simplified the test case, as suggested by Kevin\n\n- added explicit output to the commit message to demonstrate what is fixed\n\n\nJohannes Schindelin (1):\n  status: do not get confused by submodules in excluded directories\n\n dir.c                      |  2 +-\n t/t7061-wtstatus-ignore.sh | 11 +++++++++++\n 2 files changed, 12 insertions(+), 1 deletion(-)\n\n\nbase-commit: ba78f398be65e941b93276680f68a81075716472\nPublished-As: https://github.com/dscho/git/releases/tag/submodule-in-excluded-v2\nFetch-It-Via: git fetch https://github.com/dscho/git submodule-in-excluded-v2\n\nInterdiff vs v1:\n diff --git a/t/t7061-wtstatus-ignore.sh b/t/t7061-wtstatus-ignore.sh\n index 8c849a4cd2f..0c394cf995c 100755\n --- a/t/t7061-wtstatus-ignore.sh\n +++ b/t/t7061-wtstatus-ignore.sh\n @@ -278,10 +278,7 @@ EOF\n  \n  test_expect_success 'status ignores submodule in excluded directory' '\n  \tgit init tracked/submodule &&\n -\t(\n -\t\tcd tracked/submodule &&\n -\t\ttest_commit initial\n -\t) &&\n +\ttest_commit -C tracked/submodule initial &&\n  \tgit status --porcelain --ignored -u tracked/submodule >actual &&\n  \ttest_cmp expected actual\n  '\n-- \n2.14.3.windows.1\n\n"},{"id":"331041","messageId":"33355d901d5f1c4d040b33bfd5b94e01803c03cd.1508964005.git.johannes.schindelin@gmx.de","threadId":"46984","inReplyTo":"cover.1508964005.git.johannes.schindelin@gmx.de","subject":"[PATCH v2 1/1] status: do not get confused by submodules in excluded directories","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2017-10-25T20:40:40Z","receivedAt":"2017-10-25T20:40:55Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"We meticulously pass the `exclude` flag to the `treat_directory()`\nfunction so that we can indicate that files in it are excluded rather\nthan untracked when recursing.\n\nBut we did not yet treat submodules the same way.\n\nBecause of that, `git status --ignored --untracked` with a submodule\n`submodule` in a gitignored `tracked/` would show the submodule in the\n\"Untracked files\" section, e.g.\n\n\tOn branch master\n\tUntracked files:\n\t  (use \"git add <file>...\" to include in what will be committed)\n\n\t\ttracked/submodule/\n\n\tIgnored files:\n\t  (use \"git add -f <file>...\" to include in what will be committed)\n\n\t\ttracked/submodule/initial.t\n\nInstead, we would want it to show the submodule in the \"Ignored files\"\nsection:\n\n\tOn branch master\n\tIgnored files:\n\t  (use \"git add -f <file>...\" to include in what will be committed)\n\n\t\ttracked/submodule/\n\nSigned-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>\n---\n dir.c                      |  2 +-\n t/t7061-wtstatus-ignore.sh | 11 +++++++++++\n 2 files changed, 12 insertions(+), 1 deletion(-)\n\ndiff --git a/dir.c b/dir.c\nindex 1d17b800cf3..9987011da57 100644\n--- a/dir.c\n+++ b/dir.c\n@@ -1392,7 +1392,7 @@ static enum path_treatment treat_directory(struct dir_struct *dir,\n \t\tif (!(dir->flags & DIR_NO_GITLINKS)) {\n \t\t\tunsigned char sha1[20];\n \t\t\tif (resolve_gitlink_ref(dirname, \"HEAD\", sha1) == 0)\n-\t\t\t\treturn path_untracked;\n+\t\t\t\treturn exclude ? path_excluded : path_untracked;\n \t\t}\n \t\treturn path_recurse;\n \t}\ndiff --git a/t/t7061-wtstatus-ignore.sh b/t/t7061-wtstatus-ignore.sh\nindex fc6013ba3c8..0c394cf995c 100755\n--- a/t/t7061-wtstatus-ignore.sh\n+++ b/t/t7061-wtstatus-ignore.sh\n@@ -272,4 +272,15 @@ test_expect_success 'status ignored tracked directory with uncommitted file in t\n \ttest_cmp expected actual\n '\n \n+cat >expected <<\\EOF\n+!! tracked/submodule/\n+EOF\n+\n+test_expect_success 'status ignores submodule in excluded directory' '\n+\tgit init tracked/submodule &&\n+\ttest_commit -C tracked/submodule initial &&\n+\tgit status --porcelain --ignored -u tracked/submodule >actual &&\n+\ttest_cmp expected actual\n+'\n+\n test_done\n-- \n2.14.3.windows.1\n"},{"id":"331062","messageId":"xmqqtvymfxrj.fsf@gitster.mtv.corp.google.com","threadId":"46984","inReplyTo":"33355d901d5f1c4d040b33bfd5b94e01803c03cd.1508964005.git.johannes.schindelin@gmx.de","subject":"Re: [PATCH v2 1/1] status: do not get confused by submodules in excluded directories","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2017-10-26T02:28:32Z","receivedAt":"2017-10-26T02:28:39Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <johannes.schindelin@gmx.de> writes:\n\n> We meticulously pass the `exclude` flag to the `treat_directory()`\n> function so that we can indicate that files in it are excluded rather\n> than untracked when recursing.\n>\n> But we did not yet treat submodules the same way.\n>\n> Because of that, `git status --ignored --untracked` with a submodule\n> `submodule` in a gitignored `tracked/` would show the submodule in the\n> \"Untracked files\" section, e.g.\n>\n> \tOn branch master\n> \tUntracked files:\n> \t  (use \"git add <file>...\" to include in what will be committed)\n>\n> \t\ttracked/submodule/\n>\n> \tIgnored files:\n> \t  (use \"git add -f <file>...\" to include in what will be committed)\n>\n> \t\ttracked/submodule/initial.t\n>\n> Instead, we would want it to show the submodule in the \"Ignored files\"\n> section:\n\nMakes sense.  Also listing the paths in the embedded working tree\nlike initial.t as if it were part of our project is utterly wrong,\nespecially because we are not doing any --recurse-submodules thing.\n\nBoth the change and the updated description looks good.  Thanks.\n"}]}