Subject: Re: [PATCH 3/7] t1400: exercise reflog with gaps with reftable backend

From: Junio C Hamano <[email-masked]>
Date: Wed, 14 Feb 2024 14:59:43 -0800

Patrick Steinhardt <[email-masked]> writes:

> In t1400, we have a test that exercises whether we print a warning
> message as expected when the reflog contains entries which have a gap
> between the old entry's new object ID and the new entry's old object ID.
> While the logic should apply to all ref backends, the test setup writes
> into `.git/logs` directly and is thus "files"-backend specific.
>
> Refactor the test to instead use `git reflog delete` to create the gap
> and drop the REFFILES prerequisite.

This rewrite looks good.

Instead of mucking with the implementation detail, we achieve the
same with proper use of the tools provided.  Very nice.

Thanks.

> Signed-off-by: Patrick Steinhardt <[email-masked]>
> ---
>  t/t1400-update-ref.sh | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh
> index 3294b7ce08..3aeb103d34 100755
> --- a/t/t1400-update-ref.sh
> +++ b/t/t1400-update-ref.sh
> @@ -426,15 +426,15 @@ test_expect_success 'Query "main@{2005-05-28}" (past end of history)' '
>  rm -f expect
>  git update-ref -d $m
>  
> -test_expect_success REFFILES 'query reflog with gap' '
> +test_expect_success 'query reflog with gap' '
>  	test_when_finished "git update-ref -d $m" &&
>  
> -	git update-ref $m $F &&
> -	cat >.git/logs/$m <<-EOF &&
> -	$Z $A $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150320 -0500
> -	$A $B $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150380 -0500
> -	$D $F $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> 1117150680 -0500
> -	EOF
> +	GIT_COMMITTER_DATE="1117150320 -0500" git update-ref $m $A &&
> +	GIT_COMMITTER_DATE="1117150380 -0500" git update-ref $m $B &&
> +	GIT_COMMITTER_DATE="1117150480 -0500" git update-ref $m $C &&
> +	GIT_COMMITTER_DATE="1117150580 -0500" git update-ref $m $D &&
> +	GIT_COMMITTER_DATE="1117150680 -0500" git update-ref $m $F &&
> +	git reflog delete $m@{2} &&
>  
>  	git rev-parse --verify "main@{2005-05-26 23:33:01}" >actual 2>stderr &&
>  	echo "$B" >expect &&