Subject: [PATCH 0/2] refs: introduce reftable backend

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 30 Jan 2024 09:05:26 +0100

Hi,

all prequisites for the reftable backend have now been merged or are
about to be merged. This patch series thus introduces the reftable
backend itself.

The patch series is built on top of c5b454771e (The eleventh batch,
2024-01-29). In addition it depends on ps/tests-with-ref-files-backend
at bbd6106967 (t: mark tests regarding git-pack-refs(1) to be backend
specific, 2024-01-29), which is about to be merged to "next".

The patch series is impacted by three in-flight patch series:

  - ps/reftable-compacted-tables-permission-fix, which fixes permissions
    on "tables.list" when compacting so that it correctly honors the
    "core.sharedRepository" setting.

  - jc/reftable-core-fsync, which starts to fsync reftable data to disk.

  - A follow-up to that patch series [1], which starts to fsync
    "tables.list" to disk during compaction.

The patch series does _not_ depend on those series. Instead, I have
added a couple of tests marked with `test_expect_failure` to t0610.
These tests will start to pass once those topics land. As I don't expect
this patch series to land on its first iteration I very much assume that
the in-flight patch series will land before the reftable backend does.

Patrick

[1]: <[email-masked]>

Patrick Steinhardt (2):
  refs: introduce reftable backend
  ci: add jobs to test with the reftable backend

 .github/workflows/main.yml                    |    9 +
 .gitlab-ci.yml                                |    9 +
 Documentation/ref-storage-format.txt          |    2 +
 .../technical/repository-version.txt          |    5 +-
 Makefile                                      |    1 +
 ci/lib.sh                                     |    2 +-
 ci/run-build-and-tests.sh                     |    3 +
 contrib/workdir/git-new-workdir               |    2 +-
 path.c                                        |    2 +-
 path.h                                        |    1 +
 refs.c                                        |    1 +
 refs/refs-internal.h                          |    1 +
 refs/reftable-backend.c                       | 2286 +++++++++++++++++
 repository.h                                  |    5 +-
 t/t0610-reftable-basics.sh                    |  887 +++++++
 t/t0611-reftable-httpd.sh                     |   26 +
 t/test-lib.sh                                 |    2 +
 17 files changed, 3237 insertions(+), 7 deletions(-)
 create mode 100644 refs/reftable-backend.c
 create mode 100755 t/t0610-reftable-basics.sh
 create mode 100755 t/t0611-reftable-httpd.sh

-- 
2.43.GIT