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

[PATCH v3 00/13] Allow reference values to be checked in a transaction

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Feb 17, 2015, 17:00 UTC
Message-ID
<1424192423-27979-1-git-send-email-mhagger@alum.mit.edu>

This is v3 of the patch series; I think I have addressed all of the feedback raised about v1 [1] and v2 [2]. Thanks to Stefan Beller and Junio for their feedback about v2.

There are only two significant changes since v2:
* Add a new patch [03/13] that changes a lot of "flags" variables from
  "int" to "unsigned int".
* Rework t7516:
  * Remove unneeded "test_tick".
  * Don't pass "-q" to "grep".
  * Use different tokens for the two tests to remove ambiguity.

This branch is also available in my GitHub account [3] as branch "refs-have-new".

Michael

[1] http://thread.gmane.org/gmane.comp.version-control.git/263522 [2] http://thread.gmane.org/gmane.comp.version-control.git/263718 [3] https://github.com/mhagger/git

Michael Haggerty (13):
  refs: move REF_DELETING to refs.c
  refs: remove the gap in the REF_* constant values
  refs.c: Change some "flags" to "unsigned int"
  struct ref_update: move "have_old" into "flags"
  ref_transaction_update(): remove "have_old" parameter
  ref_transaction_delete(): remove "have_old" parameter
  commit: add tests of commit races
  commit: avoid race when creating orphan commits
  ref_transaction_create(): check that new_sha1 is valid
  ref_transaction_delete(): check that old_sha1 is not null_sha1
  ref_transaction_verify(): new function to check a reference's value
  update_ref(): improve documentation
  refs.h: Remove duplication in function docstrings
 branch.c                |   5 +-
 builtin/commit.c        |   4 +-
 builtin/fetch.c         |   6 ++-
 builtin/receive-pack.c  |   5 +-
 builtin/replace.c       |   2 +-
 builtin/tag.c           |   2 +-
 builtin/update-ref.c    |  20 +++----
 cache.h                 |   2 +-
 fast-import.c           |   6 +--
 refs.c                  | 140 +++++++++++++++++++++++++++++++++---------------
 refs.h                  | 113 ++++++++++++++++++++++++++------------
 sequencer.c             |   2 +-
 t/t7516-commit-races.sh |  30 +++++++++++
 walker.c                |   2 +-
 14 files changed, 233 insertions(+), 106 deletions(-)
 create mode 100755 t/t7516-commit-races.sh
-- 
2.1.4
Next: Michael Haggerty
Message 1 of 15 in “Allow reference values to be checked in a transaction”
  1. 00/13 Allow reference values to be checked in a transactionMichael Haggerty, Feb 17, 2015
  2. 01/13 refs: move REF_DELETING to refs.cMichael Haggerty, Feb 17, 2015
  3. 02/13 refs: remove the gap in the REF_* constant valuesMichael Haggerty, Feb 17, 2015
  4. 03/13 refs.c: Change some "flags" to "unsigned int"Michael Haggerty, Feb 17, 2015
  5. 04/13 struct ref_update: move "have_old" into "flags"Michael Haggerty, Feb 17, 2015
  6. 05/13 ref_transaction_update(): remove "have_old" parameterMichael Haggerty, Feb 17, 2015
  7. 06/13 ref_transaction_delete(): remove "have_old" parameterMichael Haggerty, Feb 17, 2015
  8. 07/13 commit: add tests of commit racesMichael Haggerty, Feb 17, 2015
  9. 08/13 commit: avoid race when creating orphan commitsMichael Haggerty, Feb 17, 2015
  10. 09/13 ref_transaction_create(): check that new_sha1 is validMichael Haggerty, Feb 17, 2015
  11. 10/13 ref_transaction_delete(): check that old_sha1 is not null_sha1Michael Haggerty, Feb 17, 2015
  12. 11/13 ref_transaction_verify(): new function to check a reference's valueMichael Haggerty, Feb 17, 2015
  13. 12/13 update_ref(): improve documentationMichael Haggerty, Feb 17, 2015
  14. 13/13 refs.h: Remove duplication in function docstringsMichael Haggerty, Feb 17, 2015
  15. Junio C HamanoFeb 17, 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.