Re: [PATCH v2 6/7] fetch: make `--atomic` flag cover backfilling of tags
From: Junio C Hamano <hidden>
Date: 2022-02-17 22:27:11
Patrick Steinhardt [off-list ref] 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.
quoted hunk
@@ -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.