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