Hi Simon, Simon Tournier <zimon.touto...@gmail.com> skribis:
> On Mon, 18 Sept 2023 at 15:56, Ludovic Courtès <l...@gnu.org> wrote: > >> Anyhow, how about this plan: >> >> 1. Merge <https://issues.guix.gnu.org/65866> with the hard Git >> dependency. > > Is #65866 fixing bug#63331 (Guile-GnuTLS/Git circular dependency) [1]? Yes, as written in the cover letter. [...] >> 2. When libgit2 1.7 with shallow clones is available in Guix, work on >> a patch to use Guile-Git for clones and evaluate it. > > ...we could also suggest to continue and have a complete fix of #63331 > before merging #65866. Sorry, I don’t understand. As I wrote in the cover letter, this patch series is the complete fix for <https://issues.guix.gnu.org/63331>. > It avoids to introduce a hard dependency which will be difficult to > remove and let the time for this evaluation of libgit-2.1.7, no? What this patch series sets in stone is “builtin:git-download” and its semantics. Its implementation can change over time though: it can switch to libgit2, to OCaml-Git, or anything that pleases us. These are implementation details not visible from the outside. >> As I wrote, as an example, I don’t think that there could be a practical >> implementation of (guix git-authenticate) shelling out to ‘git’. > > [...] > >> PS: I don’t buy the “libgit2 will disappear from Guix” argument because >> it’s not a natural phenomenon that we’re observing but a willful >> construction. > > As I wrote elsewhere, Git-Annex (or Magit) are shelling out to 'git', > IIRC. Well, personally I do not consider that Git-Annex is slow or > that Git-Annex does not implement features as complex as (guix > git-authenticate). > > After reading [2], > > I cannot imagine a viable implementation of things like ‘commit-closure’ > and ‘commit-relation’ from (guix git) done by shelling out to ‘git’. > I’m quite confident this would be slow and brittle. > > wolf came 3 days later [3] with a first rough implementation for > 'commit-relation' using Git plumbing which is much more faster than > the one implemented with Guile-Git. Yes, point taken. It’s not so much about whether Git-Annex is “less complex”, it’s about the level of integration needed. But you don’t have to take my word for it. We’ve spent lots of words on the issue of a dependency on Git, and yet this patch series doesn’t actually change much in that regard: ‘git-fetch’ already uses Git. I suggest that we focus on the various sub-problems we’re trying to solve without losing sight of the big picture, yet without conflating them all. Ludo’.