[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RFC: libgit2 is slow/inefficient; switch to git command?
From: |
Wojtek Kosior |
Subject: |
Re: RFC: libgit2 is slow/inefficient; switch to git command? |
Date: |
Tue, 22 Nov 2022 18:51:25 +0100 |
Hi,
I just want to add my 2 cents :)
Another issue with libgit2 is that is gives a very misleading error
report when trying to http-clone a repo that only support the old
"dumb" git protocol (as opposed to the newer "smart" one). More details
here[1].
Missing support for that dumb protocol is probably not that big issue
in practice. The misleading error Guix presents to the users trying to
access some poor git repo is :/
Wojtek
[1] https://issues.guix.gnu.org/58555
-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F 4B42 4BC5 221C 5A79 FD1A
Meet Kraków saints! #18: blessed Józef Kowalski
Poznaj świętych krakowskich! #18: błogosławiony Józef Kowalski
https://pl.wikipedia.org/wiki/Józef_Kowalski_(duchowny)
-- (sig_end)
On Tue, 22 Nov 2022 11:49:26 -0500
"Philip McGrath" <philip@philipmcgrath.com> wrote:
> Hi,
>
> On Tue, Nov 22, 2022, at 10:39 AM, zimoun wrote:
> > Hi,
> >
> > On Mon, 21 Nov 2022 at 21:21, Maxim Cournoyer <maxim.cournoyer@gmail.com>
> > wrote:
> >
> >> Given that:
> >>
> >> * the git CLI doesn't suffer from such poor performance;
> >> * This kind of performance problem has been known for years in libgit2
> >> [0] with no fix in sight;
> >> * other projects such as Cargo support using the git CLI and that
> >> projects are using it for that reason [1];
> >
> > And I would add the lack of «Support for shallow repositories» [1].
> >
> > 1: <https://github.com/libgit2/libgit2/issues/3058>
> >
>
> >
> > PS: For the record, Software Heritage, which ingests *a lot* of Git
> > repositories, relies on Dulwhich [2] (pure Python implementation), IIUC.
> >
> > 2: <https://www.dulwich.io/>
>
> Along those lines, there’s an implementation of clone/checkout in pure Racket
> (for the package manager) that could probably be ported to Guile relatively
> easily. I’d expect libgit2 to be faster for the things that it supports, but
> the Racket implementation does support shallow checkout, so it might pay off
> if that skips a lot of work.
>
> Code:
> https://github.com/racket/racket/blob/master/racket/collects/net/git-checkout.rkt
> Docs: https://docs.racket-lang.org/net/git-checkout.html
>
> (More broadly, I haven’t investigated performance issues, but my basic
> inclination would be toward improving libgit2 over running the git
> executable.)
>
> -Philip
>
pgp2fvi1zUOmP.pgp
Description: OpenPGP digital signature
Re: RFC: libgit2 is slow/inefficient; switch to git command?, Ludovic Courtès, 2022/11/23