Re: [PATCH v2 6/7] fetch: make `--atomic` flag cover backfilling of tags
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 17, 2022, 22:27 UTC
- Message-ID
- <xmqqiltd6seh.fsf@gitster.g>
- In-Reply-To
- <331ee40e57df1f07fe725dc679dd934c777d4eab.1645102965.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> 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.
Show 13 quoted lines
> @@ -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.