Subject: Re: [PATCH 11/17] t5509: specify bare repository path explicitly

From: Junio C Hamano <[email-masked]>
Date: Thu, 02 Apr 2026 13:44:15 -0700

"Johannes Schindelin via GitGitGadget" <[email-masked]>
writes:

>  test_expect_success 'hide namespaced refs with transfer.hideRefs' '
>  	GIT_NAMESPACE=namespace \
> -		git -C pushee -c transfer.hideRefs=refs/tags \
> -		ls-remote "ext::git %s ." >actual &&
> +		git --git-dir=pushee -c transfer.hideRefs=refs/tags \
> +		ls-remote "ext::git %s pushee" >actual &&

Hmph.  The command being ls-remote (which does not care what state
your working tree files are), the above may work, but rewriting 
"-C there" with "--git-dir=there" changes the semantics of the
program, no?  A more conservative rewrite that would preserve what
the original wanted to test would be to ...

	(
		cd pushee &&
		git --git-dir=. -c ... ls-remote ...
	)

... do this instead, I think.

>  	printf "$commit1\trefs/heads/main\n" >expected &&
>  	test_cmp expected actual
>  '
> @@ -97,8 +97,8 @@ test_expect_success 'hide namespaced refs with transfer.hideRefs' '
>  test_expect_success 'check that transfer.hideRefs does not match unstripped refs' '
>  	git -C pushee pack-refs --all &&
>  	GIT_NAMESPACE=namespace \
> -		git -C pushee -c transfer.hideRefs=refs/namespaces/namespace/refs/tags \
> -		ls-remote "ext::git %s ." >actual &&
> +		git --git-dir=pushee -c transfer.hideRefs=refs/namespaces/namespace/refs/tags \
> +		ls-remote "ext::git %s pushee" >actual &&
>  	printf "$commit1\trefs/heads/main\n" >expected &&
>  	printf "$commit0\trefs/tags/0\n" >>expected &&
>  	printf "$commit1\trefs/tags/1\n" >>expected &&
> @@ -107,8 +107,8 @@ test_expect_success 'check that transfer.hideRefs does not match unstripped refs
>  
>  test_expect_success 'hide full refs with transfer.hideRefs' '
>  	GIT_NAMESPACE=namespace \
> -		git -C pushee -c transfer.hideRefs="^refs/namespaces/namespace/refs/tags" \
> -		ls-remote "ext::git %s ." >actual &&
> +		git --git-dir=pushee -c transfer.hideRefs="^refs/namespaces/namespace/refs/tags" \
> +		ls-remote "ext::git %s pushee" >actual &&
>  	printf "$commit1\trefs/heads/main\n" >expected &&
>  	test_cmp expected actual
>  '