On Sun, May 17, 2020 at 8:08 PM Constantine A. Murenin <c...@netbsd.org> wrote:
>
> On Thu, 14 May 2020 at 09:23, Hauke Fath <ha...@espresso.rhein-neckar.de> 
> wrote:
>>
>> [re-directing to tech-repository, which was created precisely to keep
>> debates like this one off the other lists...]
>>
>> On Thu, 14 May 2020 14:47:02 +0200, Jens Rehsack wrote:
>> > I doubt that you'll find a modern solution running fine on any 4M computer.
>> > Network filesystems, cross compilers etc. where invented to support 
>> > machines
>> > which can't provide all required resources for a job on their own.
>>
>> Unfortunately, the VCS equivalent to your list would be a client
>> connecting to a beefy local DVCS instance, which to the best of my
>> knowledge has not been invented, yet.
>
>
> Actually, it has already been invented.  GitHub has links to download the 
> checkout as a zip archive from any branch.
>
> E.g., https://github.com/NetBSD/src/archive/netbsd-9.zip has the checkout 
> from `netbsd-9`.
>
> I've just tried how it works, and am getting 5MB/s on my 12.6MB/s connection 
> through the WiFi in the office, so, it seems to be working good enough.  I 
> believe they archive it on the go, as a stream, because there's no file size 
> upfront when you first download it; I've tried downloading it a second time 
> right after completing the first one, and I did get the size then (Length: 
> 548765520 (523M) [application/zip]), so, they are smart enough to cache it at 
> least for some time.
>
> Of course, the biggest issue is that there's no way to ignore any specific 
> parts of the tree, so, you're stuck with downloading a 0.5GB archive of a 
> 2.4GB checkout.  I'm still of the opinion that it might be a good idea to 
> split the `src` repository into several sub-repositories like syssrc, gnusrc 
> and src, as per 
> http://mail-index.netbsd.org/tech-repository/2020/02/21/msg000698.html.  Or 
> maybe at least provide such a setup as an option, especially to just get the 
> kernel?
>
> Cheers,
> Constantine.

This is a built-in git feature:
https://git-scm.com/book/en/v2/Git-Tools-Bundling  (hg archive is the
same, I think)

If you want small and fast you can use shallow clone and, although you
get the entire tree's bundle, it is small and fast.
You can then use --sparse to build a "sparse" (kernel only or
whatever) limited checkout (aka working dir) -- (new git feature--
https://git-scm.com/docs/git-sparse-checkout  /
https://git-scm.com/docs/git-read-tree#_sparse_checkout  ) / I don't
know about mercurial's version of this

Reply via email to