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

Re: [PATCH 3/4] t5604: do not expect that HEAD is a valid tagname

From
Jeff King <peff@peff.net>
Date
Dec 2, 2024, 20:52 UTC
Message-ID
<20241202205238.GD776185@coredump.intra.peff.net>
In-Reply-To
<20241202070714.3028549-4-gitster@pobox.com>
On Mon, Dec 02, 2024 at 04:07:13PM +0900, Junio C Hamano wrote:
Show 13 quoted lines
> 09116a1c (refs: loosen over-strict "format" check, 2011-11-16)
> introduced a test piece (originally in t5700) that expects to be
> able to create a tag named "HEAD" and then a local clone using the
> repository as its own reference works correctly.  Later, another
> test piece started using this tag starting at acede2eb (t5700:
> document a failure of alternates to affect fetch, 2012-02-11).
> 
> But the breakage 09116a1c fixed was not specific to the tagname
> HEAD.  It would have failed exactly the same way if the tag used
> were foo instead of HEAD.
> 
> Before forbidding "git tag" from creating "refs/tags/HEAD", update
> these tests to use 'foo', not 'HEAD', as the name of the test tag.

Yeah, I think this is worth doing independently. The patch looks good, though...

Show 21 quoted lines
> @@ -131,7 +131,7 @@ test_expect_success 'cloning with multiple references drops duplicates' '
>  
>  test_expect_success 'clone with reference from a tagged repository' '
>  	(
> -		cd A && git tag -a -m tagged HEAD
> +		cd A && git tag -a -m tagged foo
>  	) &&
>  	git clone --reference=A A I
>  '
> @@ -156,10 +156,10 @@ test_expect_success 'fetch with incomplete alternates' '
>  		git remote add J "file://$base_dir/J" &&
>  		GIT_TRACE_PACKET=$U.K git fetch J
>  	) &&
> -	main_object=$(cd A && git for-each-ref --format="%(objectname)" refs/heads/main) &&
> +	main_object=$(git -C A rev-parse --verify refs/heads/main) &&
>  	test -s "$U.K" &&
>  	! grep " want $main_object" "$U.K" &&
> -	tag_object=$(cd A && git for-each-ref --format="%(objectname)" refs/tags/HEAD) &&
> +	tag_object=$(git -C A rev-parse --verify refs/tags/foo) &&
>  	! grep " want $tag_object" "$U.K"
>  '

I notice that you swapped out "cd A && git" for "git -C A" in the second hunk (evne in the line which does not otherwise need to be touched). I think that is good, but is it worth doing the same in the first hunk? That would actually let us drop the subshell.

-Peff
Previous: Jeff KingNext: Junio C Hamano
Message 13 of 22 in “forbid HEAD as a tagname”
  1. 0/4 forbid HEAD as a tagnameJunio C Hamano, Dec 2, 2024
  2. 1/4 refs: move ref name helpers aroundJunio C Hamano, Dec 2, 2024
  3. Jeff KingDec 2, 2024
  4. Junio C HamanoDec 3, 2024
  5. 2/4 refs: drop strbuf_ prefix from helpersJunio C Hamano, Dec 2, 2024
  6. Jeff KingDec 2, 2024
  7. 3/4 t5604: do not expect that HEAD is a valid tagnameJunio C Hamano, Dec 2, 2024
  8. Kristoffer HaugsbakkDec 2, 2024
  9. Jeff KingDec 2, 2024
  10. Kristoffer HaugsbakkDec 2, 2024
  11. Junio C HamanoDec 3, 2024
  12. Jeff KingDec 5, 2024
  13. Jeff KingDec 2, 2024
  14. 4/4 tag: "git tag" refuses to use HEAD as a tagnameJunio C Hamano, Dec 2, 2024
  15. Patrick SteinhardtDec 2, 2024
  16. shejialuoDec 2, 2024
  17. Junio C HamanoDec 3, 2024
  18. Jeff KingDec 5, 2024
  19. Jeff KingDec 5, 2024
  20. Rubén JustoDec 2, 2024
  21. Junio C HamanoDec 3, 2024
  22. Jeff KingDec 2, 2024

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.