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

[PATCH 6/6] t/lib-submodule-update: add test removing nested submodules

From
Philippe Blain via GitGitGadget <gitgitgadget@gmail.com>
Date
Feb 17, 2020, 04:53 UTC
Message-ID
<70b2a20b4ebb09ccb85b576c212075ab1ca75601.1581915186.git.gitgitgadget@gmail.com>
In-Reply-To
<pull.555.git.1581915186.gitgitgadget@gmail.com>
From: Philippe Blain <levraiphilippeblain@gmail.com>

The previous commit fixed a bug with the (no submodule) -> (nested submodules) transition for commands in the unpack-trees machinery.

Let's add a test for the reverse transition (going from nested submodules to no submodule), as it is not being tested currently.

While at it, uniformize the capitalization in the list of tests.
Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
---
 t/lib-submodule-update.sh | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/t/lib-submodule-update.sh b/t/lib-submodule-update.sh
index ab30b2da24f..64fc6487dd9 100755
--- a/t/lib-submodule-update.sh
+++ b/t/lib-submodule-update.sh
@@ -297,7 +297,7 @@ test_submodule_content () {
 # - Directory containing tracked files replaced by submodule
 # - Submodule replaced by tracked files in directory
 # - Submodule replaced by tracked file with the same name
-# - tracked file replaced by submodule
+# - Tracked file replaced by submodule
 #
 # The default is that submodule contents aren't changed until "git submodule
 # update" is run. And even then that command doesn't delete the work tree of
@@ -621,12 +621,13 @@ test_submodule_forced_switch () {
 # - Directory containing tracked files replaced by submodule
 # - Submodule replaced by tracked files in directory
 # - Submodule replaced by tracked file with the same name
-# - tracked file replaced by submodule
+# - Tracked file replaced by submodule
 #
 # New test cases
 # - Removing a submodule with a git directory absorbs the submodules
 #   git directory first into the superproject.
 # - Switching from no submodule to nested submodules
+# - Switching from nested submodules to no submodule
 
 # Internal function; use test_submodule_switch_recursing_with_args() or
 # test_submodule_forced_switch_recursing_with_args() instead.
@@ -760,6 +761,21 @@ test_submodule_recursing_with_args_common() {
 		)
 	'
 
+	# Switching to a commit without nested submodules removes their worktrees
+	test_expect_success "$command: worktrees of nested submodules are removed" '
+		prolog &&
+		reset_work_tree_to_interested add_nested_sub &&
+		(
+			cd submodule_update &&
+			git branch -t no_submodule origin/no_submodule &&
+			$command no_submodule &&
+			test_superproject_content origin/no_submodule &&
+			! test_path_is_dir sub1 &&
+			test_must_fail git config -f .git/modules/sub1/config core.worktree &&
+			test_must_fail git config -f .git/modules/sub1/modules/sub2/config core.worktree
+		)
+	'
+
 	########################## Modified submodule #########################
 	# Updating a submodule sha1 updates the submodule's work tree
 	test_expect_success "$command: modified submodule updates submodule work tree" '
-- 
gitgitgadget
Previous: Philippe Blain via GitGitGadget
Message 9 of 9 in “unpack-trees: fix '--recurse-submodules' when switching from no submodules to nested submodules”
  1. 0/6 unpack-trees: fix '--recurse-submodules' when switching from no submodules to nested submodulesPhilippe Blain via GitGitGadget, Feb 17, 2020
  2. 2/6 t/lib-submodule-update: remove outdated test descriptionPhilippe Blain via GitGitGadget, Feb 17, 2020
  3. 4/6 unpack-trees: remove outdated description for verify_clean_submodulePhilippe Blain via GitGitGadget, Feb 17, 2020
  4. 5/6 unpack-trees: check for missing submodule directory in merged_entryPhilippe Blain via GitGitGadget, Feb 17, 2020
  5. Junio C HamanoFeb 19, 2020
  6. 1/6 t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTEDPhilippe Blain via GitGitGadget, Feb 17, 2020
  7. Junio C HamanoFeb 19, 2020
  8. 3/6 t/lib-submodule-update: move a test to the right sectionPhilippe Blain via GitGitGadget, Feb 17, 2020
  9. 6/6 t/lib-submodule-update: add test removing nested submodulesPhilippe Blain via GitGitGadget, Feb 17, 2020

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.