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.
--- 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
;;
"Tuncer Ayaz" [off-list ref] writes:
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.
quoted hunk
--- 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
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 <redacted>
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 <redacted>
---
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