[maintainer-tools PATCH] dim: fix remote repository lookup function

Andrzej Hajda a.hajda at samsung.com
Fri Aug 25 11:31:55 UTC 2017


dim finds remote name by matching repository urls, but different users
requires different protocols/paths for remotes (ssh/git/https). Current
code incorrectly translates provided url to alternatives, the patch
fixes it.

Signed-off-by: Andrzej Hajda <a.hajda at samsung.com>
---
 dim | 26 ++++++++++++--------------
 1 file changed, 12 insertions(+), 14 deletions(-)

diff --git a/dim b/dim
index 11aa675..d6d9269 100755
--- a/dim
+++ b/dim
@@ -223,15 +223,15 @@ fi
 #	git branch name - dim assumes that the remote and local name match
 # url:
 #	url to a repo, using ssh:// protocol
-# git_url:
-#	url to a repo, but using anonymous git:// protocol
+# urls:
+#	alternative urls to a repo, derived from url
 #
 # The below functions map between these.
 #
 
 function url_to_remote # url
 {
-	local url remote
+	local url urls remote
 
 	url="$1"
 
@@ -240,19 +240,17 @@ function url_to_remote # url
 		return 1
 	fi
 
-	remote=$(git remote -v | grep -m 1 "$url" | cut -f 1)
+	urls=$(echo $url | sed -r \
+		-e 's!ssh://(git.freedesktop.org)/git/(.*)!\0|git://anon\1/\2|https://anon\1/git/\2.git!' \
+		-e 's!git://(git.kernel.org/.*)!\0|https://\1!')
+	remote=$(git remote -v | grep -m 1 -P "$urls" | cut -f 1)
 
 	if [[ -z "$remote" ]]; then
-		git_url=$(echo $url | sed -e 's/git\./anongit./' -e 's/ssh:/git:/')
-		remote=$(git remote -v | grep -m 1 "$git_url" | cut -f 1)
-
-		if [[ -z "$remote" ]]; then
-			echoerr "No git remote for url $url or $git_url found in $(pwd)"
-			echoerr "Please set it up using:"
-			echoerr "    $ git remote add <name> $url"
-			echoerr "with a name of your choice."
-			return 1
-		fi
+		echoerr "No git remote for url $url found in $(pwd)"
+		echoerr "Please set it up using:"
+		echoerr "    $ git remote add <name> url"
+		echoerr "with a name of your choice and url one of: ${urls//|/, }"
+		return 1
 	fi
 
 	echo $remote
-- 
2.7.4



More information about the dri-devel mailing list