diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-07-19 09:45:37 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-07-19 09:45:37 -0700 |
commit | 0591c0a5be7d58dfe2c69c8a81b2cebbb0337320 (patch) | |
tree | 78bdfd99a808beaedbdb9bb055e2e693b0dfaa68 /git-submodule.sh | |
parent | 765c7e4f3100484ea277f043048631ea93b3127a (diff) | |
parent | 2cd9de3e18183422cd7ec3cd81cebc656068ea42 (diff) | |
download | git-0591c0a5be7d58dfe2c69c8a81b2cebbb0337320.tar.gz |
Merge branch 'jc/submodule-sync-no-auto-vivify'
* jc/submodule-sync-no-auto-vivify:
submodule add: always initialize .git/config entry
submodule sync: do not auto-vivify uninteresting submodule
Conflicts:
git-submodule.sh
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-x | git-submodule.sh | 58 |
1 files changed, 31 insertions, 27 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index 87c9452c8a..3daa0c834c 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -250,7 +250,6 @@ Use -f if you really want to add it." && url="$repo" ;; esac - git config submodule."$path".url "$url" else module_clone "$path" "$realrepo" "$reference" || exit @@ -264,6 +263,7 @@ Use -f if you really want to add it." && esac ) || die "$(eval_gettext "Unable to checkout submodule '\$path'")" fi + git config submodule."$path".url "$url" git add $force "$path" || die "$(eval_gettext "Failed to add submodule '\$path'")" @@ -363,25 +363,26 @@ cmd_init() do # Skip already registered paths name=$(module_name "$path") || exit - url=$(git config submodule."$name".url) - test -z "$url" || continue - - url=$(git config -f .gitmodules submodule."$name".url) - test -z "$url" && - die "$(eval_gettext "No url found for submodule path '\$path' in .gitmodules")" - - # Possibly a url relative to parent - case "$url" in - ./*|../*) - url=$(resolve_relative_url "$url") || exit - ;; - esac - - git config submodule."$name".url "$url" || - die "$(eval_gettext "Failed to register url for submodule path '\$path'")" + if test -z "$(git config "submodule.$name.url")" + then + url=$(git config -f .gitmodules submodule."$name".url) + test -z "$url" && + die "$(eval_gettext "No url found for submodule path '\$path' in .gitmodules")" + + # Possibly a url relative to parent + case "$url" in + ./*|../*) + url=$(resolve_relative_url "$url") || exit + ;; + esac + git config submodule."$name".url "$url" || + die "$(eval_gettext "Failed to register url for submodule path '\$path'")" + fi + # Copy "update" setting when it is not set yet upd="$(git config -f .gitmodules submodule."$name".update)" test -z "$upd" || + test -n "$(git config submodule."$name".update)" || git config submodule."$name".update "$upd" || die "$(eval_gettext "Failed to register update mode for submodule path '\$path'")" @@ -925,17 +926,20 @@ cmd_sync() ;; esac - say "$(eval_gettext "Synchronizing submodule url for '\$name'")" - git config submodule."$name".url "$url" - - if test -e "$path"/.git + if git config "submodule.$name.url" >/dev/null 2>/dev/null then - ( - clear_local_git_env - cd "$path" - remote=$(get_default_remote) - git config remote."$remote".url "$url" - ) + say "$(eval_gettext "Synchronizing submodule url for '\$name'")" + git config submodule."$name".url "$url" + + if test -e "$path"/.git + then + ( + clear_local_git_env + cd "$path" + remote=$(get_default_remote) + git config remote."$remote".url "$url" + ) + fi fi done } |