Thread (2 messages) flat view 2 messages, 2 authors, 2016-08-11
DORMANTno replies

[PATCH 1/3] git-fetch: reuse ls-remote result.

From: Junio C Hamano <hidden>
Date: 2016-08-11 20:09:34
Subsystem: the rest · Maintainer: Linus Torvalds

This will become necessary to update the dumb protocol
transports to fetch from a repository with packed and then
pruned tags.

Signed-off-by: Junio C Hamano <redacted>
---
 * I am doing this to allow dumb protocol transports to work
   with a repository with packed and then pruned refs, but it
   should be reusable for other purposes, such as wildcarding the
   refspecs Andy is interested in.

 git-fetch.sh |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/git-fetch.sh b/git-fetch.sh
index eb32476..170c2cb 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -88,6 +88,10 @@ then
 	: >"$GIT_DIR/FETCH_HEAD"
 fi
 
+# Global that is reused later
+ls_remote_result=$(git ls-remote $upload_pack "$remote") ||
+	die "Cannot find the reflist at $remote"
+
 append_fetch_head () {
     head_="$1"
     remote_="$2"
@@ -233,10 +237,7 @@ reflist=$(get_remote_refs_for_fetch "$@"
 if test "$tags"
 then
 	taglist=`IFS="	" &&
-		  (
-			git-ls-remote $upload_pack --tags "$remote" ||
-			echo fail ouch
-		  ) |
+		  echo "$ls_remote_result" |
 	          while read sha1 name
 		  do
 			case "$sha1" in
@@ -245,6 +246,8 @@ then
 			esac
 			case "$name" in
 			*^*) continue ;;
+			refs/tags/*) ;;
+			*) continue ;;
 			esac
 		  	if git-check-ref-format "$name"
 			then
@@ -431,7 +434,7 @@ case "$no_tags$tags" in
 		# effective only when we are following remote branch
 		# using local tracking branch.
 		taglist=$(IFS=" " &&
-		git-ls-remote $upload_pack --tags "$remote" |
+		echo "$ls_remote_result" |
 		sed -n	-e 's|^\('"$_x40"'\)	\(refs/tags/.*\)^{}$|\1 \2|p' \
 			-e 's|^\('"$_x40"'\)	\(refs/tags/.*\)$|\1 \2|p' |
 		while read sha1 name
-- 
1.4.4.1.g77614
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help