Hi, Josselin Poiret <d...@jpoiret.xyz> skribis:
> My opinion is that the preferred API for Git is still the UNIX one via > plumbing commands. Anything else is trying to catch up to it, and then > we get into this conundrum that we want to do everything in Scheme, but > we're unable to do it as well as Git itself. If I had to choose, a > Guile library wrapping the Git commands would be the best, especially > since we're managing long-living checkouts, something libgit2 doen't > seem too interested in. I have mixed feelings here. Clearly, I don’t think a Unix command can ever be as rich and efficient as a “proper library”. Are alternative Git implementations doomed to always try to catch up? My intuition would be “no”, because not so much changes in Git as an on-disk format and protocol. There is one big change coming up though: SHA256 support (now officially supported in Git). Is it being discussed in libgit2? Maxim Cournoyer <maxim.courno...@gmail.com> skribis: > Josselin Poiret <d...@jpoiret.xyz> writes: [...] >> There's still the `git gc` problem though. > > It's klunky, but a workaround is to locally clone the checkout anew > using libgit2, as suggested here [0]. > > [0] https://github.com/libgit2/libgit2/issues/3247#issuecomment-486585944 That doesn’t work, at least with libgit2 1.3.2: https://issues.guix.gnu.org/65720#7 > We could also try to contribute to libgit2 toward adding proper > support for a 'gc' action. I share this sentiment: if we’re gonna depend on it, we’ve gotta invest in it. We’re benefiting from it so we shouldn’t be mere consumers. I have to admit I don’t see myself doing it right now, but I would definitely encourage others to do so. Now, as a corollary to what I wrote above: if we don’t invest in it, we should be prepared to drop it. Ludo’.