Re: [PATCH 2/2] p9210: fix 'scalar clone' when running from a detached HEAD
On Fri, Mar 28, 2025 at 05:07:49PM +0000, Philippe Blain via GitGitGadget wrote:
Show 40 quoted lines
> From: Philippe Blain <levraiphilippeblain@gmail.com>
>
> In p9210-scalar-clone.sh, we test using 'scalar clone' to clone
> $GIT_PERF_LARGE_REPO (copied locally as 'to-clone'), which defaults to
> the git.git checkout we are running the test from.
>
> When --branch is not specified (as in this test), 'scalar clone' tries
> to get the default branch of the remote repository by parsing the output
> of 'git ls-remote --symref $URL HEAD', as implemented in
> scalar.c:remote_default_branch. When the git.git checkout we are running
> the test from is in detached HEAD, this fails and we fall back to using
> the name of the currently checked out branch in the newly initialized
> repository, which in this case is the value returned earlier in
> cmd_clone by repo_default_branch_name.
>
> We then invoke 'git checkout -t origin/$branch', with $branch being the
> name we got from remote_default_branch. This invocation fails if
> '$branch' does not exist as a branch in the current git.git checkout.
>
> Fix this by creating a local branch in 'to-clone' in the setup test
> "enable server-side partial clone", making sure to use '-B' in case a
> branch named 'test-branch' already exists.
>
> Signed-off-by: Philippe Blain <levraiphilippeblain@gmail.com>
> ---
> t/perf/p9210-scalar.sh | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/t/perf/p9210-scalar.sh b/t/perf/p9210-scalar.sh
> index 265f7cd1fe2..56b075e906e 100755
> --- a/t/perf/p9210-scalar.sh
> +++ b/t/perf/p9210-scalar.sh
> @@ -7,7 +7,8 @@ test_perf_large_repo "$TRASH_DIRECTORY/to-clone"
>
> test_expect_success 'enable server-side partial clone' '
> git -C to-clone config uploadpack.allowFilter true &&
> - git -C to-clone config uploadpack.allowAnySHA1InWant true
> + git -C to-clone config uploadpack.allowAnySHA1InWant true &&
> + git -C to-clone checkout -B test-branch
> '
This feels like an easy and pragmatic fix. Thanks!
Patrick