"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
ori@eigenstate.org
Subject:
Re: got clone: start of effort.
To:
stsp@stsp.name, ori@eigenstate.org, gameoftrees@openbsd.org
Date:
Thu, 19 Mar 2020 20:08:06 -0700

Download raw body.

Thread
> On Fri, Feb 21, 2020 at 09:58:14AM +0100, Stefan Sperling wrote:
>> On Mon, Feb 17, 2020 at 02:13:30PM -0500, Ori Bernstein wrote:
>> > Now tested against a clean clone.
>> 
>> Thanks, it applied and compiled fine.
>> 
>> I have started making changes on top of this diff. Because there seems
>> to be a lot of work left to do before this can be released I am working
>> on a branch for now:
>> https://git.gameoftrees.org/gitweb/?p=got.git;a=shortlog;h=refs/heads/clone
>> 
>> Everyone is of course welcome to contribute there.
>> 
>> Thanks a lot for getting this started Ori!
> 
> At this point I think enough progress has been made on this branch
> for integration.
> 
> The git:// protocol works, as does ssh:// (tested against github).
> Currently only full clones are supported, a 'got fetch' command for
> incremental updates will come later.
> 
> The new helpers 'got-fetch-pack' and 'got-index-pack' are functional and
> pledged with "stdio recvfd". The main 'got clone' program uses the usual
> pledges plus "dns inet" if the git:// protocol is used (otherwise ssh(1)
> handles those things).
> 
> got-index-pack is single-threaded and its performance is notably worse
> than 'git index-pack' which runs one thread per CPU core. This can be
> improved later if needed. Cloning src.git over localhost on a Matebook X
> takes between 6 and 7 minutes, and requires about 250 MB of RAM. About
> 50 MB of that are used to store the generated pack index and could be
> spilled into a temporary file but I doubt that will help much on memory
> constrained machines.
> 
> I don't remember how much time a full src CVS reposync from scratch takes
> on a fast link. Does anyone know? Memory usage will definitely be lower
> with rsync. In any case, it would be possible to use rsync for initial
> cloning of Git repositories and the Git protocol for incremental updates.
> 
> I will now look at rebasing the branch and squashing the history a bit
> before integrating it. It does not look like anyone else has been actively
> working on the branch so I'm not going to wait and just do it.

Great -- at some point in the next few weeks, I'll look at
git push; I don't think we have redeltification yet, so I'll
just do trivial packfiles, with no deltas at all.  We can
revisit that later fairly easily.