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

[PATCH] git-fetch.sh: fix fetching of tags that point directly to commits

From
Petr 'Patch Proxy' Baudis <pasky@ucw.cz>
Date
Nov 19, 2006, 02:59 UTC
Message-ID
<20061119025921.GU7201@pasky.or.cz>

git-fetch used to fetch only tags that pointed to tag objects, because it required a ^{} suffix from git-ls-remote's output.

Not signed off. ---

For similar issue in Cogito, please see
	http://news.gmane.org/find-root.php?message_id=<20060427105251.AA4B2353DAC@atlas.denx.de>

Curiously enough, Junio himself posted a patch. Perhaps given his state as of then he forgot to fix Git as well. ;-)

I did not write this patch. One fellow IRCer did, but for personal reasons he does not wish to disclose his realname. I think the patch is trivial enough that copyright problems should not be a issue.

 git-fetch.sh |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/git-fetch.sh b/git-fetch.sh
index 7442dd2..9074b3f 100755
--- a/git-fetch.sh
+++ b/git-fetch.sh
@@ -430,9 +430,13 @@ case "$no_tags$tags" in
 	*:refs/*)
 		# effective only when we are following remote branch
 		# using local tracking branch.
-		taglist=$(IFS=" " &&
+		# If we get both refs/tags/foo and refs/tags/foo^{},
+		# use only the latter and strip the ^{} suffix.
+		taglist=$(
+		IFS=" "; export LC_COLLATE=C
 		git-ls-remote $upload_pack --tags "$remote" |
-		sed -ne 's|^\([0-9a-f]*\)[ 	]\(refs/tags/.*\)^{}$|\1 \2|p' |
+		sed -ne 's|^\([0-9a-f]*\)[ \t]\(refs/tags/.*\)$|\1 \2|p' |
+		sort -k2 -r | sed -e 's/\^{}$//' | uniq -f1 |
 		while read sha1 name
 		do
 			git-show-ref --verify --quiet -- $name && continue
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
The meaning of Stonehenge in Traflamadorian, when viewed from above, is:
"Replacement part being rushed with all possible speed."
Message 1 of 1 in “git-fetch.sh: fix fetching of tags that point directly to commits”
  1. git-fetch.sh: fix fetching of tags that point directly to commitsPetr 'Patch Proxy' Baudis, Nov 19, 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.