Subject: Re: bug#33100: [libssh] fatal: dumb http transport does not support shallow capabilities

From: [email-masked] (Ludovic Courtès)
Date: Mon, 22 Oct 2018 11:55:26 +0200

Hello,

Maxim Cournoyer <[email-masked]> skribis:
> It did end up working fine, although it took a large amout of time for
> doing what seems to be a checkout (4 min 46 s). I did some experiments
> and this is really the time it took to do a full clone of the libssh
> project.
>
> time git clone git://git.libssh.org/projects/libssh.git libssh
> Cloning into 'libssh'...
> remote: Enumerating objects: 28264, done.
> remote: Counting objects: 100% (28264/28264), done.
> remote: Compressing objects: 100% (11718/11718), done.
> remote: Total 28264 (delta 20985), reused 21830 (delta 16350)s    
> Receiving objects: 100% (28264/28264), 5.21 MiB | 263.00 KiB/s, done.
> Resolving deltas: 100% (20985/20985), done.
>
> real    4m19.419s
> user    0m3.272s
> sys     0m0.540s
>
>
> It's a bit of a shame, given that the shallow clone takes about 2
> seconds (!):
>
> time git clone --depth 1 git://git.libssh.org/projects/libssh.git libssh
> Cloning into 'libssh'...
> remote: Enumerating objects: 367, done.
> remote: Counting objects: 100% (367/367), done.
> remote: Compressing objects: 100% (358/358), done.
> remote: Total 367 (delta 39), reused 53 (delta 1)
> Receiving objects: 100% (367/367), 704.23 KiB | 728.00 KiB/s, done.
> Resolving deltas: 100% (39/39), done.
>
> real    0m2.028s
> user    0m0.160s
> sys     0m0.071s
>
> Based on the discussion here:
> https://github.com/CocoaPods/CocoaPods/issues/6270, it would seem this
> means that the libssh git server doesn't support the newer "smart HTTP
> transport" and the git client bails out (IIUC). At least in our case the
> guile-ssh library seems to already correctly fallback to doing a full
> clone.

Switching to the git:// transport would seem like a reasonable
workaround—we’d lose encryption and authentication, but the latter is
covered by the content hash in the ‘origin’ anyway.

WDYT, Leo?

> Perhaps just clearer messages would have helped here also ('Failed to do
> a shallow git clone due to ~error message~, falling back to a full clone').

I agree, and that’s something to suggest to the Git folks.  :-)

Thanks,
Ludo’.