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>,
"David Turner" <novalis@novalis.org>,
"Brandon Williams" <bmwill@google.com>,
git@vger.kernel.org, "Michael Haggerty" <mhagger@alum.mit.edu>
Subject: [PATCH v2 00/29] Create a reference backend for packed refs
Date: Fri, 23 Jun 2017 09:01:18 +0200 [thread overview]
Message-ID: <cover.1498200513.git.mhagger@alum.mit.edu> (raw)
This is v2 of a patch series creating a `packed_ref_store`
reference backend. Thanks to Stefan, Junio, and Peff for their
comments about v1 [1].
Changes since v1:
* Picked up some whitespace fixes that Junio applied when importing v1.
* A new patch 01 adds a test (written by Junio) that a broken packed
ref doesn't cause a problem if it is overwritten by a corresponding
loose ref. This test was broken by v1 of this patch series but it
passes throughout v2.
* Change patch 17 "packed_ref_store: support iteration" to always
iterate over the packed refs using `DO_FOR_EACH_INCLUDE_BROKEN`.
This switches off the check in the packed-ref iterator of whether a
reference is broken. This is now checked only in
`files_ref_iterator_advance()`, after the packed and loose
references have been merged together. It also saves some work.
* Rebased the patch series onto mh/packed-ref-store-prep, which is
where Junio applied v1 of this patch series.
This patch series can also be obtained from my GitHub fork [2] as
branch packed-ref-store.
[1] http://public-inbox.org/git/cover.1497534157.git.mhagger@alum.mit.edu/
[2] https://github.com/mhagger/git
Junio C Hamano (1):
t1408: add a test of stale packed refs covered by loose refs
Michael Haggerty (28):
add_packed_ref(): teach function to overwrite existing refs
packed_ref_store: new struct
packed_ref_store: move `packed_refs_path` here
packed_ref_store: move `packed_refs_lock` member here
clear_packed_ref_cache(): take a `packed_ref_store *` parameter
validate_packed_ref_cache(): take a `packed_ref_store *` parameter
get_packed_ref_cache(): take a `packed_ref_store *` parameter
get_packed_refs(): take a `packed_ref_store *` parameter
add_packed_ref(): take a `packed_ref_store *` parameter
lock_packed_refs(): take a `packed_ref_store *` parameter
commit_packed_refs(): take a `packed_ref_store *` parameter
rollback_packed_refs(): take a `packed_ref_store *` parameter
get_packed_ref(): take a `packed_ref_store *` parameter
repack_without_refs(): take a `packed_ref_store *` parameter
packed_peel_ref(): new function, extracted from `files_peel_ref()`
packed_ref_store: support iteration
packed_read_raw_ref(): new function, replacing `resolve_packed_ref()`
packed-backend: new module for handling packed references
packed_ref_store: make class into a subclass of `ref_store`
commit_packed_refs(): report errors rather than dying
commit_packed_refs(): use a staging file separate from the lockfile
packed_refs_lock(): function renamed from lock_packed_refs()
packed_refs_lock(): report errors via a `struct strbuf *err`
packed_refs_unlock(), packed_refs_is_locked(): new functions
clear_packed_ref_cache(): don't protest if the lock is held
commit_packed_refs(): remove call to `packed_refs_unlock()`
repack_without_refs(): don't lock or unlock the packed refs
read_packed_refs(): die if `packed-refs` contains bogus data
Makefile | 1 +
refs.c | 18 +
refs/files-backend.c | 631 ++++-------------------------------
refs/packed-backend.c | 868 +++++++++++++++++++++++++++++++++++++++++++++++++
refs/packed-backend.h | 25 ++
refs/refs-internal.h | 10 +
t/t1408-packed-refs.sh | 46 +++
7 files changed, 1039 insertions(+), 560 deletions(-)
create mode 100644 refs/packed-backend.c
create mode 100644 refs/packed-backend.h
create mode 100755 t/t1408-packed-refs.sh
--
2.11.0
next reply other threads:[~2017-06-23 7:02 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-23 7:01 Michael Haggerty [this message]
2017-06-23 7:01 ` [PATCH v2 01/29] t1408: add a test of stale packed refs covered by loose refs Michael Haggerty
2017-06-23 18:59 ` Jeff King
2017-06-23 20:22 ` Junio C Hamano
2017-06-23 7:01 ` [PATCH v2 02/29] add_packed_ref(): teach function to overwrite existing refs Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 03/29] packed_ref_store: new struct Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 04/29] packed_ref_store: move `packed_refs_path` here Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 05/29] packed_ref_store: move `packed_refs_lock` member here Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 06/29] clear_packed_ref_cache(): take a `packed_ref_store *` parameter Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 07/29] validate_packed_ref_cache(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 08/29] get_packed_ref_cache(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 09/29] get_packed_refs(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 10/29] add_packed_ref(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 11/29] lock_packed_refs(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 12/29] commit_packed_refs(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 13/29] rollback_packed_refs(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 14/29] get_packed_ref(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 15/29] repack_without_refs(): " Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 16/29] packed_peel_ref(): new function, extracted from `files_peel_ref()` Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 17/29] packed_ref_store: support iteration Michael Haggerty
2017-06-23 19:12 ` Jeff King
2017-06-23 7:01 ` [PATCH v2 18/29] packed_read_raw_ref(): new function, replacing `resolve_packed_ref()` Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 19/29] packed-backend: new module for handling packed references Michael Haggerty
2017-06-23 19:35 ` Jeff King
2017-06-23 19:46 ` Stefan Beller
2017-06-23 21:20 ` Junio C Hamano
2017-06-23 7:01 ` [PATCH v2 20/29] packed_ref_store: make class into a subclass of `ref_store` Michael Haggerty
2017-06-23 19:40 ` Jeff King
2017-06-23 7:01 ` [PATCH v2 21/29] commit_packed_refs(): report errors rather than dying Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 22/29] commit_packed_refs(): use a staging file separate from the lockfile Michael Haggerty
2017-06-23 19:46 ` Jeff King
2017-06-24 11:43 ` Michael Haggerty
2017-06-24 11:57 ` Jeff King
2017-06-23 7:01 ` [PATCH v2 23/29] packed_refs_lock(): function renamed from lock_packed_refs() Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 24/29] packed_refs_lock(): report errors via a `struct strbuf *err` Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 25/29] packed_refs_unlock(), packed_refs_is_locked(): new functions Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 26/29] clear_packed_ref_cache(): don't protest if the lock is held Michael Haggerty
2017-06-23 19:49 ` Jeff King
2017-06-23 7:01 ` [PATCH v2 27/29] commit_packed_refs(): remove call to `packed_refs_unlock()` Michael Haggerty
2017-06-23 19:51 ` Jeff King
2017-06-23 7:01 ` [PATCH v2 28/29] repack_without_refs(): don't lock or unlock the packed refs Michael Haggerty
2017-06-23 19:56 ` Jeff King
2017-07-01 17:11 ` Michael Haggerty
2017-06-23 7:01 ` [PATCH v2 29/29] read_packed_refs(): die if `packed-refs` contains bogus data Michael Haggerty
2017-06-23 19:58 ` Jeff King
2017-07-01 18:15 ` Michael Haggerty
2017-06-23 19:01 ` [PATCH v2 00/29] Create a reference backend for packed refs Jeff King
2017-06-23 20:00 ` Jeff King
2017-06-23 21:47 ` Junio C Hamano
2017-06-24 1:11 ` Jeff King
2017-06-24 11:14 ` Michael Haggerty
2017-06-23 20:24 ` Junio C Hamano
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.1498200513.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=novalis@novalis.org \
--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.