On Sat, Feb 01, 2025 at 10:44:40AM +0100, Lars-Dominik Braun wrote:
> > ## Repository Migration Path
> 
> do we want to take this opportunity to start off fresh without migrating
> the main repository’s history? It looks like we have accumulated more
> than 500MB of commit data so far and everyone who runs `guix pull` the
> first time has to download all of that and authenticate a pretty large
> number of commits. (Plus, ~/.cache/guix keeps on growing and growing.)

I'm not sure this is worth it, but maybe we can do better! If we were to
prune the repo in this way, it would break `guix time-machine`, which is
a nice selling point of Guix and really valuable.

If we were to do that, it would require updating the code-signing
authentication introductory commit. I figure that must be possible
although I don't know the details.

We could start using shallow clones, and only fetching Git history when
required. For a recent commit, this is 25 MB over the wire and 185 MB on
disk.

Now, shallow cloning has, at least in the past, been computationally
*very* expensive for Git server implementations, to the point where it
was considered abusive when done by projects that use Git repos like we
do. It was *vastly* more efficient to use Git "normally", by doing a
full clone and then updating it incrementally with `git fetch`. Maybe
this has improved in recent years; I haven't followed the state of the
art in this area.

Anyways, there's probably some room for improvement in this area, but I
think we should consider it out of scope for this proposal.

Reply via email to