Implement transactions for the packed ref store
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest11 patches 3 repliesIn review
- v110 patches 20 repliesSuperseded
Changes in v2 from the cover letter
* Patch [01/11]: justify the change better in the log message. Add a comment explaining why get_packed_ref_cache() is being called but the return value discarded.
* Patch [05/11]: Lock the packed-refs file *after* successfully creating the (empty) transaction object. This prevents leaving the file locked if ref_store_transaction_begin() fails.
* Patch [06/11]: New patch, fixing a leak of the refs_to_prune linked list.
* Patch [07/11]: Reimplement test "no bogus intermediate values during delete" to work without polling. Also incorporate Junio's change s/grep/test_i18ngrep/.
Patches in v2 No applies recorded yet
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 00/11] Implement transactions for the packed ref store
This is v2 of a patch series to implement reference transactions for the packed refs-store. Thanks to Stefan, Brandon, Junio, and Peff for your review of v1 [1]. I believe I have addressed all of your comments.
Changes since v1:
* Patch [01/11]: justify the change better in the log message. Add a comment explaining why get_packed_ref_cache() is being called but the return value discarded.
* Patch [05/11]: Lock the packed-refs file *after* successfully creating the (empty) transaction object. This prevents leaving the file locked if ref_store_transaction_begin() fails.
* Patch [06/11]: New patch, fixing a leak of the refs_to_prune linked list.
* Patch [07/11]: Reimplement test "no bogus intermediate values during delete" to work without polling. Also incorporate Junio's change s/grep/test_i18ngrep/.
These changes are also available as branch packed-ref-transactions from my GitHub repo [2].
Michael
[1] https://public-inbox.org/git/[email protected]/
[2] https://github.com/mhagger/git
Michael Haggerty (11):
packed-backend: don't adjust the reference count on lock/unlock struct ref_transaction: add a place for backends to store data
packed_ref_store: implement reference transactions packed_delete_refs(): implement method
files_pack_refs(): use a reference transaction to write packed refs prune_refs(): also free the linked list files_initial_transaction_commit(): use a transaction for packed refs
t1404: demonstrate two problems with reference transactions
files_ref_store: use a transaction to update packed refs
packed-backend: rip out some now-unused code files_transaction_finish(): delete reflogs before references
refs/files-backend.c | 214 ++++++++++++++------ refs/packed-backend.c | 461 +++++++++++++++++++++++++++++-------------- refs/packed-backend.h | 17 +- refs/refs-internal.h | 1 + t/t1404-update-ref-errors.sh | 73 +++++++ 5 files changed, 550 insertions(+), 216 deletions(-)
Signature · 1 line
2.14.1