git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] git-fetch.sh printed protocol fix

From
Junio C Hamano <junkio@cox.net>
Date
Oct 25, 2006, 18:52 UTC
Message-ID
<7v4ptsb546.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<4ac8254d0610250303n60a6006bsa4d77aba7255485f@mail.gmail.com>
"Tuncer Ayaz" <tuncer.ayaz@gmail.com> writes:
Show 5 quoted lines
> As a feature I wished for (ftp:// support in git-fetch) was added in 1.4.3
> I tested that feature and found a minor logging issue. The mini-patch
> below fixes that.  AFAIK the pattern expansion feature I've used should
> be available in any current /bin/sh. If not we will have to find another
> way to print the protocol part of the used fetch URL.
Yes, we also have supported https:// that way for a long time.
Show 11 quoted lines
> --- git-core-1.4.3.2/git-fetch.sh	2006-10-24 07:29:47.000000000 +0200
> +++ git-core-1.4.3.2.tma/git-fetch.sh	2006-10-25 11:44:34.000000000 +0200
> @@ -310,7 +310,7 @@
> 	  done
>  	  expr "z$head" : "z$_x40\$" >/dev/null ||
> 	      die "Failed to fetch $remote_name from $remote"
> -	  echo >&2 Fetching "$remote_name from $remote" using http
> +	  echo >&2 Fetching "$remote_name from $remote" using ${remote%%:*}
> 	  git-http-fetch -v -a "$head" "$remote/" || exit
> 	  ;;
>       rsync://*)

As you noticed, we stayed away from using ${parameter#word} or ${parameter%word} substitutions so far, to be as compatible with vanilla shells as possible (I know even dash which is pretty much the most minimal supports it -- the syntax is in POSIX). I am a bit reluctant to take this implementation right now. We tend to use colon-form of "expr" for things like this.

It might make sense to do a survey of userbase at some point to see if everybody's shell that works with the current set of scripts understands the substring substitution, and after finding it out switch many invocations of expr to substring substitutions.

For now I'd take the patch but change it to match others to use expr.

Next time around, please sign your patch.
-- >8 -- 
From: Tuncer Ayaz <tuncer.ayaz@gmail.com>
Date: Wed, 25 Oct 2006 12:03:06 +0200
Subject: [PATCH] git-fetch.sh printed protocol fix

We have supported https:// protocol for some time and in 1.4.3 added ftp:// protocol. The transfer were still reported to be over http.

[jc: Tuncer used substring parameter substitution ${remote%%:*}
 but I am deferring it to a later day.  We should replace
 colon-expr with substring substitution after everybody's shell
 can grok it someday, but we are not in a hurry. ]
Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 git-fetch.sh |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/git-fetch.sh b/git-fetch.sh
index 79222fb..9eedf8b 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -287,6 +287,7 @@ fetch_main () {
       # There are transports that can fetch only one head at a time...
       case "$remote" in
       http://* | https://* | ftp://*)
+	  proto=`expr "$remote" : '\([^:]*\):'`
 	  if [ -n "$GIT_SSL_NO_VERIFY" ]; then
 	      curl_extra_args="-k"
 	  fi
@@ -310,7 +311,7 @@ fetch_main () {
 	  done
 	  expr "z$head" : "z$_x40\$" >/dev/null ||
 	      die "Failed to fetch $remote_name from $remote"
-	  echo >&2 Fetching "$remote_name from $remote" using http
+	  echo >&2 "Fetching $remote_name from $remote using $proto"
 	  git-http-fetch -v -a "$head" "$remote/" || exit
 	  ;;
       rsync://*)
-- 
1.4.3.2.gc1a4
Previous: Tuncer Ayaz
Message 2 of 2 in “git-fetch.sh printed protocol fix”
  1. git-fetch.sh printed protocol fixTuncer Ayaz, Oct 25, 2006
  2. Junio C HamanoOct 25, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.