5 Commits

Author SHA1 Message Date
Edward Thomson
b1b421fe4b cmake: separate generated headers from translated headers
Make a distinction between generated headers and "translated" headers.
This is important to support build-time dependencies when headers are
updated.

Generated headers are those which contain build-time feature
specifications, like `git2_features.h` that are internal to the build
and `experimental.h` that contain API information.

Translated headers are the headers that are in `include/git2`, but may
be translated to have a unique prefix like `incklude/git2-experimental`.

This distinction is important so that the CMakeFiles.txt depend on the
in-tree include files (`src/include`) and the generated header files
_but not_ the translated header files. Otherwise there are two `pack.h`
and it's unclear whether the in-tree build is targeting the one in
`src/include` or the one in the build tree.

Without this, updating an in-tree header file like `pack.h` would not
cause a rebuild of its dependencies.
2026-05-16 13:01:55 +01:00
Patrick Steinhardt
6701e02f1c refdb: implement reftable backend
Implement the reftable backend that is used to read and write reftables.
The backend is not yet used anywhere after this commit.
2026-04-16 14:56:46 +02:00
Patrick Steinhardt
641a43c90d deps/reftable: wire up library with CMake
Wire up the reftable library with CMake. At the current point in time
the library is not yet plugged into libgit2 itself.
2026-04-16 14:56:46 +02:00
Patrick Steinhardt
9e3b00acfb deps/reftable: implement system compatibility code
While the reftable library is mostly decoupled from the Git codebase,
some specific functionality intentionally taps into Git subsystems. To
make porting of the reftable library easier all of these are contained
in "system.h" and "system.c".

Reimplement those compatibility shims so that they work for libgit2.
2026-04-16 14:56:46 +02:00
Patrick Steinhardt
623a3783bb deps: import reftable library
Import the reftable library from commit 4fee6ff3b2 (Merge branch
'ps/reftable-portability', 2026-04-08). This is an exact copy of the
reftable library.

The library will be wired into libgit2 over the next couple of commits.
2026-04-09 06:48:35 +02:00