From: Junio C Hamano Date: Sun, 22 Jul 2012 19:55:47 +0000 (-0700) Subject: Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' X-Git-Tag: v1.7.12-rc0~19 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=15b3c82cbb345c890400119134fb9709790696d8;p=git.git Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' When "git submodule add" clones a submodule repository, it can get confused where to store the resulting submodule repository in the superproject's .git/ directory when there is a symbolic link in the path to the current directory. * jl/maint-1.7.10-recurse-submodules-with-symlink: submodules: don't stumble over symbolic links when cloning recursively --- 15b3c82cbb345c890400119134fb9709790696d8 diff --cc git-submodule.sh index 5629d875e,61f3b72e3..dba4d39e1 --- a/git-submodule.sh +++ b/git-submodule.sh @@@ -182,12 -145,14 +182,14 @@@ module_clone( else mkdir -p "$gitdir_base" git clone $quiet -n ${reference:+"$reference"} \ - --separate-git-dir "$gitdir" "$url" "$path" || - die "$(eval_gettext "Clone of '\$url' into submodule path '\$path' failed")" + --separate-git-dir "$gitdir" "$url" "$sm_path" || + die "$(eval_gettext "Clone of '\$url' into submodule path '\$sm_path' failed")" fi - a=$(cd "$gitdir" && pwd)/ - b=$(cd "$sm_path" && pwd)/ + # We already are at the root of the work tree but cd_to_toplevel will + # resolve any symlinks that might be present in $PWD + a=$(cd_to_toplevel && cd "$gitdir" && pwd)/ - b=$(cd_to_toplevel && cd "$path" && pwd)/ ++ b=$(cd_to_toplevel && cd "$sm_path" && pwd)/ # normalize Windows-style absolute paths to POSIX-style absolute paths case $a in [a-zA-Z]:/*) a=/${a%%:*}${a#*:} ;; esac case $b in [a-zA-Z]:/*) b=/${b%%:*}${b#*:} ;; esac