Re: git: df53ae0fdd98 - main - Remove portsnap(8)

From: Kyle Evans <kevans_at_freebsd.org>
Date: Sun, 23 Apr 2023 15:20:24 UTC
On Sun, Apr 23, 2023 at 10:01 AM Alexey Dokuchaev <danfe@freebsd.org> wrote:
>
> On Sun, Apr 23, 2023 at 06:12:18AM +0000, Piotr P. Stefaniak wrote:
> > On 2023-04-23 01:12:43, Colin Percival wrote:
> > >  Remove portsnap(8)
> > >
> > >  Rather than having a tool in the FreeBSD base system for obtaining
> > >  the FreeBSD ports tree, users are encouraged to `pkg install git`
> > >  and then `git clone https://git.FreeBSD.org/ports.git /usr/ports`.
> >
> > With my 64 KB/s downlink a shallow copy of just the main branch takes
> > almost 4 hours. What's worse, git has no way of resuming an interrupted
> > download.
>
> My internet connection is roughly the same, and full "git clone" always
> fails.  However, repeated "git fetch --depth=n ; n++" allowed me to get
> the ports tree in a few days, eventually.  I have to use this trick for
> any large repo, it migth seem annoying, but it does work.
>

I've mentioned it a couple times on lists, but this seems like a good
time to bring it up again: I maintain repo bundles of all of our
repositories, at least, on freefall:
https://people.freebsd.org/~kevans/bundles/ -- fetch this with
whatever hip thing you have that does resumable downloads and clone a
repository from it, then adjust the remote to point to the upstream
repo and incremental fetch to the current version.

One could imagine that clusteradm@ could take this over and make it
fetchable via, say, anongit@git.f.o so one can rsync it. I call the
script that I use freebsd-bundler, but it largely goes away if they
just create the bundles out of the --bare source of truth repos.

Thanks,

Kyle Evans