Subject: Re: reftable & jgit compatibility

From: Patrick Steinhardt <[email-masked]>
Date: Wed, 3 Apr 2024 12:47:15 +0200

On Wed, Apr 03, 2024 at 12:36:04PM +0200, Han-Wen Nienhuys wrote:
> Thanks again for taking up this work.
> 
> As I'm browsing over your patches (and realizing how much of the
> arcana of the format I've forgotten), I hope that I did not make any
> errors in implementing the spec (and/or that Shawn didn't deviate his
> implementation from the spec). It would be extremely unfortunate if an
> incompatibility between CGit and JGit were discovered after it is
> released.
> 
> So far I have always been able to read JGit reftables using the C / Go
> code, but it would be good to systematically test this, ie. generate a
>  bunch of tables using JGit and check that passing them through the C
> code (read & write) leaves them unchanged. Or perhaps check in some
> tables as golden reference data.
> 
> Josh can probably connect you to the right folks to help with this on
> the JGit side.

I very much agree, this thought has crossed my mind multiple times while
working on the whole reftable saga. Ideally, we would have integration
tests that write reftables with one of the implementations and then read
them with the respective other implementation. I wouldn't really know
where to put those though. CGit is very unlikely to pull in JGit as a
test dependency. Does JGit have any tests that already use CGit?

Adding a bunch of reftables pre-generated by JGit might be an okayish
tradeoff, I guess. I also don't really expect the format to evolve
significantly, so these should be reasonably static over the long term.

Patrick