[PATCH 1/1] git-submodule.sh: fix relative paths with ssh urls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Fix handling of submodule urls starting with ../ when the remote url is
an scp-style URL with the format user@xxxxxxx:repo.git. For example, if
the remote url is user@xxxxxxx:repo.git and the submodule URL is
../submodule.git, the combined default URL will now be
user@xxxxxxx:submodule.git instead of
user@xxxxxxx:repo.git/submodule.git.
---
 git-submodule.sh |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index c291eed..533cf5d 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -36,13 +36,25 @@ resolve_relative_url ()
 	remoteurl=$(git config "remote.$remote.url") ||
 		die "remote ($remote) does not have a url defined in .git/config"
 	url="$1"
+	sep="/"
 	remoteurl=${remoteurl%/}
 	while test -n "$url"
 	do
 		case "$url" in
 		../*)
 			url="${url#../}"
-			remoteurl="${remoteurl%/*}"
+			remoteparent="${remoteurl%/*}"
+			if test "$remoteparent" != "$remoteurl"
+			then
+				remoteurl="$remoteparent"
+			else
+				remoteparent="${remoteurl%:*}"
+				if test "$remoteparent" != "$remoteurl"
+				then
+					remoteurl="$remoteparent"
+					sep=":"
+				fi
+			fi
 			;;
 		./*)
 			url="${url#./}"
@@ -51,7 +63,7 @@ resolve_relative_url ()
 			break;;
 		esac
 	done
-	echo "$remoteurl/${url%/}"
+	echo "$remoteurl$sep${url%/}"
 }
 
 #
-- 
1.7.3.2

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]