]> git.ipfire.org Git - thirdparty/git.git/commit
reftable: add code to facilitate consistency checks
authorKarthik Nayak <karthik.188@gmail.com>
Tue, 7 Oct 2025 12:11:30 +0000 (14:11 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 7 Oct 2025 16:22:58 +0000 (09:22 -0700)
commit9051638519e7f9d52ce87d1baa88b35141f073aa
tree9fbedc982288799d1ea86baf140cebb5f07d7695
parent5a71321ddba80bdba7780944dc800634cd867397
reftable: add code to facilitate consistency checks

The `git refs verify` command is used to run consistency checks on the
reference backends. This command is also invoked when users run 'git
fsck'. While the files-backend has some fsck checks added, the reftable
backend lacks such checks. Let's add the required infrastructure and a
check to test for the files present in the reftable directory.

Since the reftable library is treated as an independent library we
should ensure that the library code works independently without
knowledge about Git's internals. To do this, add both 'reftable/fsck.c'
and 'reftable/reftable-fsck.h'. Which provide an entry point
'reftable_fsck_check' for running fsck checks over a provided reftable
stack. The callee provides the function with callbacks to handle issue
and information reporting.

The added check, goes over all tables in the reftable stack validates
that they have a valid name. It not, it raises an error.

While here, move 'reftable/error.o' in the Makefile to retain
lexicographic ordering.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Makefile
meson.build
reftable/fsck.c [new file with mode: 0644]
reftable/reftable-fsck.h [new file with mode: 0644]