git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] status: do not get confused by submodules in excluded directories

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 17, 2017, 13:10 UTC
Message-ID
<244d71f47336e985ae265573b7d523cd8b3943bd.1508244305.git.johannes.schindelin@gmx.de>

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@gmx.de>
---
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
+	) &&
+	git status --porcelain --ignored -u tracked/submodule >actual &&
+	test_cmp expected actual
+'
+
 test_done

base-commit: 111ef79afe185f8731920569450f6a65320f5d5f
-- 
2.14.2.windows.3
Next: Junio C Hamano
Message 1 of 12 in “status: do not get confused by submodules in excluded directories”
  1. status: do not get confused by submodules in excluded directoriesJohannes Schindelin, Oct 17, 2017
  2. Junio C HamanoOct 24, 2017
  3. Heiko VoigtOct 24, 2017
  4. Stefan BellerOct 24, 2017
  5. Junio C HamanoOct 25, 2017
  6. Heiko VoigtOct 25, 2017
  7. Johannes SchindelinOct 25, 2017
  8. Kevin DaudtOct 24, 2017
  9. Johannes SchindelinOct 25, 2017
  10. 0/1 Do not handle submodules in excluded directories as untrackedJohannes Schindelin, Oct 25, 2017
  11. 1/1 status: do not get confused by submodules in excluded directoriesJohannes Schindelin, Oct 25, 2017
  12. Junio C HamanoOct 26, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.