submodules: print "registered for path" message only once

Since 2cd9de3e (submodule add: always initialize .git/config entry) the message "Submodule '\$name' (\$url) registered for path '\$sm_path'" is printed every time cmd_init() is called, e.g. each time "git submodule update" is used with the --init option. This was not intended and leads to bogus output which can confuse users and build systems. Apart from that the $url variable was not set after the first run which did the actual initialization and only "()" was printed in subsequent runs where "($url)" was meant to inform the user about the upstream repo. Fix that by moving the say command in question into the if block where the url is initialized, restoring the behavior that was in place before the 2cd9de3e commit. While at it also remove the comment which still describes the logic used before 2cd9de3e and add a comment about how things work now. Reported-by: Nicolas Viennot and Sid Nair <nicolas@viennot.com> Reported-by: Heiko Voigt <hvoigt@hvoigt.net> Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jens Lehmann committed May 28, 2012 at 21:46 UTC c1c259e225cf39c7353c673ad2c7c84450d909c1
1 file changed +4 -3
git-submodule.sh
+4 -3
@@ -396,8 +396,9 @@ cmd_init()
396 module_list "$@" |
397 while read mode sha1 stage sm_path
398 do
399 - # Skip already registered paths
399 name=$(module_name "$sm_path") || exit
400 +
401 + # Copy url setting when it is not set yet
402 if test -z "$(git config "submodule.$name.url")"
403 then
404 url=$(git config -f .gitmodules submodule."$name".url)
@@ -412,6 +413,8 @@ cmd_init()
413 esac
414 git config submodule."$name".url "$url" ||
415 die "$(eval_gettext "Failed to register url for submodule path '\$sm_path'")"
416 +
417 + say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$sm_path'")"
418 fi
419
420 # Copy "update" setting when it is not set yet
@@ -420,8 +423,6 @@ cmd_init()
423 test -n "$(git config submodule."$name".update)" ||
424 git config submodule."$name".update "$upd" ||
425 die "$(eval_gettext "Failed to register update mode for submodule path '\$sm_path'")"
423 -
424 - say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$sm_path'")"
426 done
427 }
428