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
This commit is contained in:
commit
15b3c82cbb
@ -186,8 +186,10 @@ module_clone()
|
||||
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 "$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
|
||||
|
@ -636,4 +636,17 @@ test_expect_success 'submodule update properly revives a moved submodule' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success SYMLINKS 'submodule update can handle symbolic links in pwd' '
|
||||
mkdir -p linked/dir &&
|
||||
ln -s linked/dir linkto &&
|
||||
(
|
||||
cd linkto &&
|
||||
git clone "$TRASH_DIRECTORY"/super_update_r2 super &&
|
||||
(
|
||||
cd super &&
|
||||
git submodule update --init --recursive
|
||||
)
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user