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

Weird problem with git-submodule.sh

From
Marc Branchaud <marcnarc@xiplink.com>
Date
Dec 7, 2012, 17:44 UTC
Message-ID
<50C22B15.1030607@xiplink.com>
Hi all,
This is with git 1.8.0.1 on all the machines involved.
One of our build machines is having trouble with "git submodule":
	$ git submodule init external/openssl
	No submodule mapping found in .gitmodules for path ''

(.gitmodules and other aspects of the repo are fine -- the submodules work perfectly on other machines.)

The problem seems to be in cmd_init() with the construct
	module_list "$@" |
	while read mode sha1 stage sm_path
	do
		...
Explicitly setting IFS before the call to module_list makes it work:
	IFS=" "
	module_list "$@" |
	while read mode sha1 stage sm_path
	do
		...

If IFS is unset, the "while read" loop ends up with everything in the $mode variable, and the other 3 variables are empty.

If I isolate module_list() and a simple "while read" loop into a standalone script, like this:

	module_list()
	{
		...
	}
	module_list "$@" |
	while read mode sha1 stage sm_path
	do
		echo - $mode - $sha1 - $stage - $sm_path -
	done
It works -- each individual variable is set properly.
It seems that the problem only occurs inside git-submodule.sh.
Any ideas?
		M.
Next: Junio C Hamano
Message 1 of 19 in “Weird problem with git-submodule.sh”
  1. Marc BranchaudDec 7, 2012
  2. Junio C HamanoDec 7, 2012
  3. Marc BranchaudDec 7, 2012
  4. Junio C HamanoDec 7, 2012
  5. Marc BranchaudDec 7, 2012
  6. Junio C HamanoDec 7, 2012
  7. Marc BranchaudDec 7, 2012
  8. Junio C HamanoDec 7, 2012
  9. sh-setup: work around "unset IFS" bug in some shellsJunio C Hamano, Dec 7, 2012
  10. Marc BranchaudDec 7, 2012
  11. Andreas SchwabDec 7, 2012
  12. Junio C HamanoDec 7, 2012
  13. Andreas SchwabDec 8, 2012
  14. Stefano LattariniDec 9, 2012
  15. Phil HordDec 12, 2012
  16. Junio C HamanoDec 12, 2012
  17. Phil HordDec 12, 2012
  18. Marc BranchaudDec 7, 2012
  19. sh-setup: Explicitly set IFS to its default, instead of unsetting it.marcnarc@xiplink.com, Dec 7, 2012

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.