Subject: Re: [PATCH v2 6/7] fetch: make `--atomic` flag cover backfilling of tags

From: Junio C Hamano <[email-masked]>
Date: Thu, 17 Feb 2022 14:27:02 -0800

Patrick Steinhardt <[email-masked]> writes:

> Fix this by pulling up creation of the reference transaction such that
> we can pass the same transaction to both the code which updates local
> references and to the code which backfills tags. This allows us to only
> commit the transaction in case both actions succeed.

OK, having done the FETCH_HEAD thing, the idea is quite similar.
Instead of letting two invocations to store_updated_refs() to
independently open and close separate transactions, we control
everything centrally in do_fetch().

Makes sense.

> @@ -197,12 +194,10 @@ test_expect_success 'atomic fetch with backfill should use single transaction' '
>  		prepared
>  		$ZERO_OID $B refs/heads/something
>  		$ZERO_OID $S refs/tags/tag2
> +		$ZERO_OID $T refs/tags/tag1
>  		committed
>  		$ZERO_OID $B refs/heads/something
>  		$ZERO_OID $S refs/tags/tag2
> -		prepared
> -		$ZERO_OID $T refs/tags/tag1
> -		committed
>  		$ZERO_OID $T refs/tags/tag1
>  	EOF

OK.

Unlike the "expect the behaviour at the end of the series from the
beginning with known-to-fail tests" pattern I cautioned against in
an earlier step, this is a good way to show how the behaviour
changes.

Thanks.