From: Michael Haggerty <mhagger@alum.mit.edu>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Stefan Beller" <sbeller@google.com>, "Jeff King" <peff@peff.net>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Brandon Williams" <bmwill@google.com>,
git@vger.kernel.org, "Michael Haggerty" <mhagger@alum.mit.edu>
Subject: [PATCH v2 00/11] Implement transactions for the packed ref store
Date: Fri, 8 Sep 2017 15:51:42 +0200 [thread overview]
Message-ID: <cover.1504877858.git.mhagger@alum.mit.edu> (raw)
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/cover.1503993268.git.mhagger@alum.mit.edu/
[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(-)
--
2.14.1
next reply other threads:[~2017-09-08 13:52 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-08 13:51 Michael Haggerty [this message]
2017-09-08 13:51 ` [PATCH v2 01/11] packed-backend: don't adjust the reference count on lock/unlock Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 02/11] struct ref_transaction: add a place for backends to store data Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 03/11] packed_ref_store: implement reference transactions Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 04/11] packed_delete_refs(): implement method Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 05/11] files_pack_refs(): use a reference transaction to write packed refs Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 06/11] prune_refs(): also free the linked list Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 07/11] files_initial_transaction_commit(): use a transaction for packed refs Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 08/11] t1404: demonstrate two problems with reference transactions Michael Haggerty
2017-09-09 11:17 ` Jeff King
2017-09-10 5:07 ` Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 09/11] files_ref_store: use a transaction to update packed refs Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 10/11] packed-backend: rip out some now-unused code Michael Haggerty
2017-09-08 13:51 ` [PATCH v2 11/11] files_transaction_finish(): delete reflogs before references Michael Haggerty
2017-09-09 11:18 ` [PATCH v2 00/11] Implement transactions for the packed ref store Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1504877858.git.mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=avarab@gmail.com \
--cc=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.