submodule add: always initialize .git/config entry
authorJens Lehmann <Jens.Lehmann@web.de>
Sat, 25 Jun 2011 23:26:02 +0000 (01:26 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 26 Jun 2011 20:15:21 +0000 (13:15 -0700)
commit2cd9de3e18183422cd7ec3cd81cebc656068ea42
treefce94bdd614ab5495fb5ec7c7be70b9cbbb754f8
parentccee60862bbba6aa65fafbdb1ce357d2b31a795b
submodule add: always initialize .git/config entry

When "git submodule add $path" is run to add a subdirectory $path to the
superproject, and $path is already the top of the working tree of the
submodule repository, the command created submodule.$path.url entry in the
configuration file in the superproject. However, when adding a repository
$URL that is outside the respository of the superproject to $path that
does not exist (yet) with "git submodule add $URL $path", the command
forgot to set it up.

The user is expressing the interest in the submodule and wants to keep a
checkout, the "submodule add" command should consistently set up the
submodule.$path.url entry in either case.

As a result "git submodule init" can't simply skip the initialization of
those submodules for which it finds an url entry in the git./config
anymore. That lead to problems when adding a submodule (which now sets the
url), add the "update" setting to .gitmodules and expect init to copy that
into .git/config like it is done in t7406. So change init to only then
copy the "url" and "update" entries when they don't exist yet in the
.git/config and do nothing otherwise.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-submodule.sh