Hi, while working on the reftable backend I've hit several smaller issues in the reftable library, which this patch series addresses. We probably want to refactor t0032-reftable-unittest.sh to plug into the new unit test architecture eventually, but for now I refrained from doing so. I care more about getting things to a working state right now, but I or somebody else from the Gitaly team will probably pick this topic up later in this release cycle. One issue I had was that this patch series starts to use more of the Git infrastructure. Back when the library was introduced that there was some discussion around whether it should work standalone or not, but if I remember correctly the outcome was that it's okay to use internals like e.g. `strbuf`. And while things like `read_in_full()` and related are trivial wrappers, this patch series start to hook into the tempfiles interface which I really didn't want to reimplement. It's a bit unfortunate that we don't yet have good test coverage as there are no end-to-end tests, and most of the changes I did are not easily testable in unit tests. So until the reftable backend gets submitted you'll have to trust my reasoning as layed out in the commit messages that the changes actually improve things. Patrick Patrick Steinhardt (8): reftable: wrap EXPECT macros in do/while reftable: handle interrupted reads reftable: handle interrupted writes reftable/stack: verify that `reftable_stack_add()` uses auto-compaction reftable/stack: perform auto-compaction with transactional interface reftable/stack: reuse buffers when reloading stack reftable/merged: reuse buffer to compute record keys reftable/stack: fix stale lock when dying reftable/blocksource.c | 2 +- reftable/merged.c | 20 ++++---- reftable/stack.c | 71 ++++++++++---------------- reftable/stack_test.c | 105 +++++++++++++++++++++++++++++++++++++- reftable/test_framework.h | 58 +++++++++++---------- 5 files changed, 174 insertions(+), 82 deletions(-) -- 2.42.0
Attachment:
signature.asc
Description: PGP signature