[PATCH v3 4/4] submodules: fix ambiguous absolute paths under Windows
- From
Jens Lehmann <jens.lehmann@web.de>
- Date
- Mar 4, 2012, 21:16 UTC
- Message-ID
- <4F53DBA3.4010500@web.de>
- In-Reply-To
- <4F53DA95.2020402@web.de>
From: Johannes Sixt <j6t@kdbg.org>
Under Windows the "git rev-parse --git-dir" and "pwd" commands may return either drive-letter-colon or POSIX style paths. This makes module_clone() behave badly because it expects absolute paths to always start with a '/'.
Fix that by always converting the "c:/" notation into "/c/" when computing the relative paths from gitdir to the submodule work tree and back.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> --- git-submodule.sh | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/git-submodule.sh b/git-submodule.sh index a9e9822..efc86ad 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -151,6 +151,9 @@ module_clone() a=$(cd "$gitdir" && pwd)/ b=$(cd "$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 # Remove all common leading directories after a sanity check if test "${a#$b}" != "$a" || test "${b#$a}" != "$b"; then die "$(eval_gettext "Gitdir '\$a' is part of the submodule path '\$b' or vice versa")"
-- 1.7.9.2.362.g684a8