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

[PATCH v4 10/10] submodule add: respect submodule.active and submodule.<name>.active

From
BWBrandon Williams <bmwill@google.com>
Date
Mar 16, 2017, 22:29 UTC
Message-ID
<20170316222952.53801-11-bmwill@google.com>
In-Reply-To
<20170316222952.53801-1-bmwill@google.com>

In addition to adding submodule.<name>.url to the config, set submodule.<name>.active to true unless submodule.active is configured and the submodule's path matches the configured pathspec.

Signed-off-by: Brandon Williams <bmwill@google.com>
---
 git-submodule.sh               | 12 ++++++++++++
 t/t7413-submodule-is-active.sh | 21 +++++++++++++++++++++
 2 files changed, 33 insertions(+)
diff --git a/git-submodule.sh b/git-submodule.sh
index db94dea3b..6eca93416 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -278,6 +278,18 @@ or you are unsure what this means choose another name with the '--name' option."
 	fi &&
 	git add --force .gitmodules ||
 	die "$(eval_gettext "Failed to register submodule '\$sm_path'")"
+
+	if git config --get submodule.active >/dev/null
+	then
+		# If the submodule being adding isn't already covered by the
+		# current configured pathspec, set the submodule's active flag
+		if ! git submodule--helper is-active "$sm_path"
+		then
+			git config submodule."$sm_name".active "true"
+		fi
+	else
+		git config submodule."$sm_name".active "true"
+	fi
 }
 
 #
diff --git a/t/t7413-submodule-is-active.sh b/t/t7413-submodule-is-active.sh
index ea1644b58..9c785b07e 100755
--- a/t/t7413-submodule-is-active.sh
+++ b/t/t7413-submodule-is-active.sh
@@ -15,6 +15,12 @@ test_expect_success 'setup' '
 	test_commit -C super initial &&
 	git -C super submodule add ../sub sub1 &&
 	git -C super submodule add ../sub sub2 &&
+
+	# Remove submodule.<name>.active entries in order to test in an
+	# environment where only URLs are present in the conifg
+	git -C super config --unset submodule.sub1.active &&
+	git -C super config --unset submodule.sub2.active &&
+
 	git -C super commit -a -m "add 2 submodules at sub{1,2}"
 '
 
@@ -83,4 +89,19 @@ test_expect_success 'is-active with submodule.active and submodule.<name>.active
 	git -C super submodule--helper is-active sub2
 '
 
+test_expect_success 'is-active, submodule.active and submodule add' '
+	test_when_finished "rm -rf super2" &&
+	git init super2 &&
+	test_commit -C super2 initial &&
+	git -C super2 config --add submodule.active "sub*" &&
+
+	# submodule add should only add submodule.<name>.active
+	# to the config if not matched by the pathspec
+	git -C super2 submodule add ../sub sub1 &&
+	test_must_fail git -C super2 config --get submodule.sub1.active &&
+
+	git -C super2 submodule add ../sub mod &&
+	git -C super2 config --get submodule.mod.active
+'
+
 test_done
-- 
2.12.0.367.g23dc2f6d3c-goog
Previous: Brandon WilliamsNext: Brandon Williams
Message 107 of 123 in “decoupling a submodule's existence and its url”
  1. 00/10 decoupling a submodule's existence and its urlBrandon Williams, Feb 23, 2017
  2. 06/10 submodule add: respect submodule.activeBrandon Williams, Feb 23, 2017
  3. 09/10 submodule sync: use submodule--helper is-activeBrandon Williams, Feb 23, 2017
  4. 04/10 completion: clone can initialize specific submodulesBrandon Williams, Feb 23, 2017
  5. 01/10 submodule: decouple url and submodule existenceBrandon Williams, Feb 23, 2017
  6. Junio C HamanoFeb 24, 2017
  7. Brandon WilliamsMar 1, 2017
  8. Stefan BellerMar 1, 2017
  9. Brandon WilliamsMar 6, 2017
  10. Junio C HamanoMar 2, 2017
  11. 03/10 clone: add --submodule-spec=<pathspec> switchBrandon Williams, Feb 23, 2017
  12. 07/10 submodule status: use submodule--helper is-activeBrandon Williams, Feb 23, 2017
  13. 08/10 submodule deinit: use most reliable urlBrandon Williams, Feb 23, 2017
  14. 10/10 submodule--helper clone: check for configured submodules using helperBrandon Williams, Feb 23, 2017
  15. Stefan BellerFeb 24, 2017
  16. Brandon WilliamsFeb 27, 2017
  17. 02/10 submodule update: add `--init-active` switchBrandon Williams, Feb 23, 2017
  18. 05/10 submodule--helper: add is_active commandBrandon Williams, Feb 23, 2017
  19. Stefan BellerFeb 24, 2017
  20. Brandon WilliamsFeb 27, 2017
  21. Stefan BellerFeb 23, 2017
  22. 00/11 decoupling a submodule's existence and its urlBrandon Williams, Mar 9, 2017
  23. 05/11 submodule--helper clone: check for configured submodules using helperBrandon Williams, Mar 9, 2017
  24. 02/11 submodule status: use submodule--helper is-activeBrandon Williams, Mar 9, 2017
  25. 04/11 submodule sync: use submodule--helper is-activeBrandon Williams, Mar 9, 2017
  26. 01/11 submodule--helper: add is_active commandBrandon Williams, Mar 9, 2017
  27. 11/11 submodule add: respect submodule.active and submodule.<name>.activeBrandon Williams, Mar 9, 2017
  28. 06/11 submodule: decouple url and submodule existenceBrandon Williams, Mar 9, 2017
  29. 09/11 completion: clone can initialize specific submodulesBrandon Williams, Mar 9, 2017
  30. 07/11 submodule update: add `--init-active` switchBrandon Williams, Mar 9, 2017
  31. Stefan BellerMar 9, 2017
  32. Brandon WilliamsMar 9, 2017
  33. 08/11 clone: add --submodule-spec=<pathspec> switchBrandon Williams, Mar 9, 2017
  34. 10/11 submodule--helper init: set submodule.<name>.activeBrandon Williams, Mar 9, 2017
  35. Stefan BellerMar 9, 2017
  36. Brandon WilliamsMar 9, 2017
  37. 03/11 submodule deinit: use most reliable urlBrandon Williams, Mar 9, 2017
  38. Stefan BellerMar 9, 2017
  39. Brandon WilliamsMar 9, 2017
  40. 00/10 decoupling a submodule's existence and its urlBrandon Williams, Mar 13, 2017
  41. 01/10 submodule--helper: add is_active commandBrandon Williams, Mar 13, 2017
  42. Stefan BellerMar 13, 2017
  43. Junio C HamanoMar 14, 2017
  44. Brandon WilliamsMar 14, 2017
  45. 02/10 submodule status: use submodule--helper is-activeBrandon Williams, Mar 13, 2017
  46. Junio C HamanoMar 14, 2017
  47. Stefan BellerMar 14, 2017
  48. Junio C HamanoMar 14, 2017
  49. Junio C HamanoMar 14, 2017
  50. Brandon WilliamsMar 14, 2017
  51. Brandon WilliamsMar 14, 2017
  52. 03/10 submodule sync: use submodule--helper is-activeBrandon Williams, Mar 13, 2017
  53. Junio C HamanoMar 14, 2017
  54. Brandon WilliamsMar 14, 2017
  55. 05/10 submodule: decouple url and submodule existenceBrandon Williams, Mar 13, 2017
  56. Stefan BellerMar 13, 2017
  57. Brandon WilliamsMar 15, 2017
  58. Junio C HamanoMar 14, 2017
  59. Junio C HamanoMar 14, 2017
  60. Brandon WilliamsMar 15, 2017
  61. 07/10 clone: add --submodule-spec=<pathspec> switchBrandon Williams, Mar 13, 2017
  62. Junio C HamanoMar 14, 2017
  63. Brandon WilliamsMar 15, 2017
  64. Stefan BellerMar 15, 2017
  65. 08/10 completion: clone can initialize specific submodulesBrandon Williams, Mar 13, 2017
  66. 09/10 submodule--helper init: set submodule.<name>.activeBrandon Williams, Mar 13, 2017
  67. Junio C HamanoMar 14, 2017
  68. Brandon WilliamsMar 15, 2017
  69. Junio C HamanoMar 16, 2017
  70. 04/10 submodule--helper clone: check for configured submodules using helperBrandon Williams, Mar 13, 2017
  71. Junio C HamanoMar 14, 2017
  72. Stefan BellerMar 14, 2017
  73. Junio C HamanoMar 14, 2017
  74. Brandon WilliamsMar 15, 2017
  75. 10/10 submodule add: respect submodule.active and submodule.<name>.activeBrandon Williams, Mar 13, 2017
  76. Junio C HamanoMar 14, 2017
  77. Brandon WilliamsMar 15, 2017
  78. 06/10 submodule update: add `--init-active` switchBrandon Williams, Mar 13, 2017
  79. Junio C HamanoMar 14, 2017
  80. Brandon WilliamsMar 15, 2017
  81. Junio C HamanoMar 14, 2017
  82. Brandon WilliamsMar 15, 2017
  83. Stefan BellerMar 13, 2017
  84. Junio C HamanoMar 14, 2017
  85. Brandon WilliamsMar 14, 2017
  86. 00/10 decoupling url and submodule interestBrandon Williams, Mar 16, 2017
  87. 06/10 submodule: decouple url and submodule interestBrandon Williams, Mar 16, 2017
  88. Stefan BellerMar 16, 2017
  89. 03/10 submodule sync: skip work for inactive submodulesBrandon Williams, Mar 16, 2017
  90. Stefan BellerMar 16, 2017
  91. Brandon WilliamsMar 16, 2017
  92. Stefan BellerMar 16, 2017
  93. Junio C HamanoMar 17, 2017
  94. Brandon WilliamsMar 17, 2017
  95. Junio C HamanoMar 17, 2017
  96. 05/10 submodule--helper clone: check for configured submodules using helperBrandon Williams, Mar 16, 2017
  97. 02/10 submodule status: use submodule--helper is-activeBrandon Williams, Mar 16, 2017
  98. 08/10 clone: teach --recurse-submodules to optionally take a pathspecBrandon Williams, Mar 16, 2017
  99. Stefan BellerMar 17, 2017
  100. Brandon WilliamsMar 17, 2017
  101. 04/10 submodule sync: use submodule--helper is-activeBrandon Williams, Mar 16, 2017
  102. 07/10 submodule init: initialize active submodulesBrandon Williams, Mar 16, 2017
  103. Stefan BellerMar 17, 2017
  104. Brandon WilliamsMar 17, 2017
  105. Stefan BellerMar 17, 2017
  106. 01/10 submodule--helper: add is-active subcommandBrandon Williams, Mar 16, 2017
  107. 10/10 submodule add: respect submodule.active and submodule.<name>.activeBrandon Williams, Mar 16, 2017
  108. 09/10 submodule--helper init: set submodule.<name>.activeBrandon Williams, Mar 16, 2017
  109. Stefan BellerMar 17, 2017
  110. Brandon WilliamsMar 17, 2017
  111. 00/10 decoupling url and submodule interestBrandon Williams, Mar 17, 2017
  112. 06/10 submodule: decouple url and submodule interestBrandon Williams, Mar 17, 2017
  113. 09/10 submodule--helper init: set submodule.<name>.activeBrandon Williams, Mar 17, 2017
  114. 05/10 submodule--helper clone: check for configured submodules using helperBrandon Williams, Mar 17, 2017
  115. 03/10 submodule sync: skip work for inactive submodulesBrandon Williams, Mar 17, 2017
  116. 02/10 submodule status: use submodule--helper is-activeBrandon Williams, Mar 17, 2017
  117. Stefan BellerMar 17, 2017
  118. 08/10 clone: teach --recurse-submodules to optionally take a pathspecBrandon Williams, Mar 17, 2017
  119. 01/10 submodule--helper: add is-active subcommandBrandon Williams, Mar 17, 2017
  120. 07/10 submodule init: initialize active submodulesBrandon Williams, Mar 17, 2017
  121. 04/10 submodule sync: use submodule--helper is-activeBrandon Williams, Mar 17, 2017
  122. 10/10 submodule add: respect submodule.active and submodule.<name>.activeBrandon Williams, Mar 17, 2017
  123. Junio C HamanoMar 18, 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.