git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 00/11] Allow reference values to be checked in a transaction

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 9, 2015, 18:41 UTC
Message-ID
<xmqqtwyvapx7.fsf@gitster.dls.corp.google.com>
In-Reply-To
<1423412045-15616-1-git-send-email-mhagger@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu> writes:
Show 22 quoted lines
> The main purpose of this series is to simplify the interface to
> reference transactions as follows:
>
> * Remove the need to supply an explicit have_old parameter to
>   ref_transaction_update() and ref_transaction_delete(). Instead,
>   check the old_sha1 if and only if it is non-NULL.
>
> * Allow NULL to be supplied to ref_transaction_update() as new_sha1,
>   in which case old_sha1 will be verified under lock, but the
>   reference's value will not be altered.
>
> * Add a function ref_transaction_verify(), which verifies the current
>   value of a reference without changing it.
>
> * Make the similarity between ref_transaction_update() and
>   update_ref() more obvious.
>
> Along the way, it fixes a race that could happen if two processes try
> to create an orphan commit at the same time.
>
> This patch series applies on top of master merged together with
> sb/atomic-push, which in turn depends on mh/reflog-expire.
I am a bit puzzled by your intentions, so help me out.

I see that your understanding is that Stefan will be rerolling the push atomicity thing; wouldn't we then want to have a "fix and clean" topic like this one first and build the push atomicity thing on top instead?

In other words, would it make sense to extend mh/reflog-expire (in 'next') topic with commits from "Fix some problems with reflog expiration (8 patches)" series and this series to fix and clean it?

We may even want to rebase/reroll mh/reflog-expire on top of v2.3 while doing so to adjust to the transaction stuff, if that makes some of the changes in the two new series unnecessary (if these "fix and clean up" changes made in mh/reflog-expire in 'next', that is).

Previous: Stefan BellerNext: Stefan Beller
Message 31 of 35 in “Allow reference values to be checked in a transaction”
  1. 00/11 Allow reference values to be checked in a transactionMichael Haggerty, Feb 8, 2015
  2. 01/11 refs: move REF_DELETING to refs.cMichael Haggerty, Feb 8, 2015
  3. Stefan BellerFeb 9, 2015
  4. 02/11 refs: remove the gap in the REF_* constant valuesMichael Haggerty, Feb 8, 2015
  5. Stefan BellerFeb 9, 2015
  6. 03/11 struct ref_update: move "have_old" into "flags"Michael Haggerty, Feb 8, 2015
  7. 04/11 ref_transaction_update(): remove "have_old" parameterMichael Haggerty, Feb 8, 2015
  8. Stefan BellerFeb 9, 2015
  9. Michael HaggertyFeb 11, 2015
  10. 05/11 ref_transaction_delete(): remove "have_old" parameterMichael Haggerty, Feb 8, 2015
  11. Stefan BellerFeb 9, 2015
  12. 06/11 commit: add tests of commit racesMichael Haggerty, Feb 8, 2015
  13. Stefan BellerFeb 9, 2015
  14. Junio C HamanoFeb 10, 2015
  15. Michael HaggertyFeb 11, 2015
  16. Junio C HamanoFeb 11, 2015
  17. Stefan BellerFeb 11, 2015
  18. Junio C HamanoFeb 11, 2015
  19. 07/11 commit: avoid race when creating orphan commitsMichael Haggerty, Feb 8, 2015
  20. Stefan BellerFeb 9, 2015
  21. Michael HaggertyFeb 11, 2015
  22. 08/11 ref_transaction_create(): check that new_sha1 is validMichael Haggerty, Feb 8, 2015
  23. Stefan BellerFeb 9, 2015
  24. 09/11 ref_transaction_delete(): check that old_sha1 is not null_sha1Michael Haggerty, Feb 8, 2015
  25. Stefan BellerFeb 9, 2015
  26. 10/11 ref_transaction_verify(): new function to check a reference's valueMichael Haggerty, Feb 8, 2015
  27. Stefan BellerFeb 9, 2015
  28. Michael HaggertyFeb 11, 2015
  29. 11/11 update_ref(): improve documentationMichael Haggerty, Feb 8, 2015
  30. Stefan BellerFeb 9, 2015
  31. Junio C HamanoFeb 9, 2015
  32. Stefan BellerFeb 9, 2015
  33. Michael HaggertyFeb 9, 2015
  34. Stefan BellerFeb 9, 2015
  35. Junio C HamanoFeb 9, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.