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

Re: [PATCH 10/11] ref_transaction_verify(): new function to check a reference's value

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Feb 11, 2015, 16:11 UTC
Message-ID
<54DB7F37.7030206@alum.mit.edu>
In-Reply-To
<CAGZ79kZqsCmhzw9mW4Bxyzd-+XRuzh5aYFnp5GLZwjGj9SW_LQ@mail.gmail.com>
On 02/09/2015 07:50 PM, Stefan Beller wrote:
Show 26 quoted lines
> On Sun, Feb 8, 2015 at 8:14 AM, Michael Haggerty <mhagger@alum.mit.edu> wrote:
>>  /*
>> - * Add a reference update to transaction.  new_sha1 is the value that
>> - * the reference should have after the update, or null_sha1 if it should
>> - * be deleted.  If old_sha1 is non-NULL, then it the value
>> - * that the reference should have had before the update, or null_sha1 if
>> - * it must not have existed beforehand.
>> - * Function returns 0 on success and non-zero on failure. A failure to update
>> - * means that the transaction as a whole has failed and will need to be
>> - * rolled back.
>> + * Add a reference update to transaction. new_sha1 is the value that
>> + * the reference should have after the update, or null_sha1 if it
>> + * should be deleted. If new_sha1 is NULL, then the reference is not
>> + * changed at all. old_sha1 is the value that the reference must have
>> + * before the update, or null_sha1 if it must not have existed
>> + * beforehand. The old value is checked after the lock is taken to
>> + * prevent races. If the old value doesn't agree with old_sha1, the
>> + * whole transaction fails. If old_sha1 is NULL, then the previous
>> + * value is not checked.
>> + *
>> + * Return 0 on success and non-zero on failure. Any failure in the
>> + * transaction means that the transaction as a whole has failed and
>> + * will need to be rolled back.
> 
> Do we need to be explicit about having to rollback everything in each
> ref_transaction_* function documentation?
Thanks for the suggestion.

I just added a new commit that moves this (and more) information to the introductory comment above these four functions' declarations, so that it doesn't have to be repeated for each function. It will be in the re-roll.

Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
Previous: Stefan BellerNext: Michael Haggerty
Message 28 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.