Hi Peff, On Wed, 18 Nov 2020, Jeff King wrote: > On Wed, Nov 18, 2020 at 07:30:22PM +0100, SZEDER Gábor wrote: > > > > I wonder whether there is a way to change the `JGIT` prereq in a way > > > that automagically will recognize a (future) SHA256-enabled JGit? > > > Something like > > > > > > test_lazy_prereq JGIT ' > > > jgit --version && > > > test_have_prereq !SHA1 || > > > test "$(git rev-list -n 1 HEAD)" = "$(jgit rev-list -n 1 HEAD)" > > > ' > > > > > > What do you think? > > > > I'm not sure. It is surely a substantial effort to fully support > > SHA256, and I suppose there will be JGit versions with only partial > > support. I'm worried that there will be versions that can already > > read SHA256 objects, but can't read/write SHA256 pack bitmaps, or > > can't transfer/negotiate SHA256 objects yet (for t5512), so even > > though they could fulfill such a prereq test above, the test would > > still fail. > > Yeah, it's likely we'll need to just match the output of "jgit > --version". Since their support is hypothetical at this point, I think > it makes sense to go with your original patch. It does mean we'll later > have to remove the SHA1 prereq from those tests, but that's OK. It's not > very many tests, and your commit message clearly explains what is going > on. It's not just removing the SHA-1 prereq, but testing for a new-enough version. This most likely entails adding a new test helper to `t/helper/` that allows using `versioncmp()` via the command-line, with some clever way to indicate the different outcomes, and then using that in a new prereq. You know, if it was me, I would opt for the simpler (and future-proof) solution I presented above. But hey, if that complex solution using `versioncmp()` floats your boat, who am I to stop you. Ciao, Dscho