Subject: Re: [PATCH] fetch-pack: do not mix --pack_header and packfile uri

From: Junio C Hamano <[email-masked]>
Date: Thu, 11 Mar 2021 13:21:38 -0800

Jonathan Tan <[email-masked]> writes:

>> Since we are not in the business of writing a performant HTTP
>> downloader, if we can update the codepath not to rely on our http.c
>> code, and instead spawn one of the command line tools written
>> specifically for the "download a single large file over HTTP"
>> usecase (like curl, wget or aria2c), wait for it to do its thing and
>> then concentrate on the processing specific to Git (like running
>> index-pack with various options), it would take us closer to the
>> "make clone resumable" dream, wouldn't it?
>> 
>> Thanks.
>
> We would have to figure out how to communicate any Git HTTP config
> variables to curl/wget etc. (and also declare a dependency on such a
> tool), but that could be done.

Sure, and we do not have to go all the way there in a single step.

We'd likely need to ship with a basic "download from this URL and
store it in this specified temporary file" (or "to this fd") and use
it as the default downloader.  We just need to design the interface
to that downloader (i.e. which we want to make replaceable) to be
not too intimate with the details of the side that spawns the
downloader (i.e. git and git-fetch), and other people can write
replacement as a thin wrapper around curl/wget etc. to contribute to
us.

Thanks.