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]: <7bdafc9bd7f53f38a24d69a563615b6ad484e1ba.1706592127.git.ps@pks.im> 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