On Thu, Apr 04, 2024 at 03:25:00PM +0200, Patrick Steinhardt wrote: > Hi, > > while the reftable backend is a recent addition to Git, it has been part > of JGit since 2017 already. Given that there are essentially two > different implementations of the reftable format now there is a very > real risk of these two diverge and become incompatible with each other, > which would be a shame. > > This patch series addresses this risk by introducing compatibility tests > which assert that both Git and JGit can access reftables written by the > respective other implementation. > > The patch series is structured as follows: > > - Patches 1-8 merge "install-docker-dependencies.sh" into > "install-dependencies.sh". This is done so that both CI job flavors > have the same dependencies and thus the same test coverage available > without always having to maintain them both. > > - Patch 9 makes JGit available. > > - Patch 10 starts running backend-specific tests in all jobs, and > patch 11 addresses a portability issue surfaced by this. > > - Patch 12 adds a very basic compatibility test suite for Git/JGit > reftables. I mostly consider this as a proof of concept, it should > likely be extended over time. > > These compatibility tests surface three findings: > > - JGit does not support reftables format v2, which was added to > support the SHA256 object format. > > - JGit cannot read reflogs written by itself when starting from an > unborn branch. This smells like a bug in JGit to me where it > misinterprets reflog entries with a zero object ID as new OID, but I > didn't dig any deeper yet. > > - JGit is incompatible with split indices because it cannot handle > 'link' DIRC entries. This is unrelated to reftables though. > > I have tested the CI changes against both GitLab [1] and GitHub [2]. The > macOS test failures on GitHub are caused by the recent curl regression. > > [1]: https://gitlab.com/gitlab-org/git/-/merge_requests/123 > [2]: https://github.com/git/git/pull/1696 > > Patrick Hrmpf, Cc'ing the jgit-dev@ list didn't work out as all my mails got refused there due to myself not being signed up. Oh, well.. Patrick
Attachment:
signature.asc
Description: PGP signature