<zimoun>civodul: having one local Git checkout per user is really inefficient when you have to create several users. Cloning the Guix repo is not cheap at all… when this very same repo is already there.
<zimoun>Somehow, Guix should first try to clone from the root Guix repo, then update.
<civodul>zimoun: sounds like you're about to propose a patch? :-)
<civodul>zimoun: authentication duration proportional to the number of commits, that's unavoidable
<civodul>i think a solution would be a "git checkout cache daemon"
<civodul>starting off /root/.cache is not an option; is it what you had in mind?
<zimoun>civodul: why is it not an option? Instead of fetching from the network, just fetch from the local filesystem. I do not see what could be an issue since it is authentificated after the clone part..
<rekado>zimoun: because that’s just the root user’s cache.
<rekado>there could be a daemon-managed cache of the repo instead
<zimoun>yeah but this daemon-managed cache adds a layer of complexity when what we want is just to avoid a plain clone from Savanah and just reuse an already local clone. Keeping the per user clone under $HOME/.cache/guix/checkouts
<zimoun>I mean, I agree that a kind of daemon managing all the checkouts would be nice. It would allow to avoid the duplication of all the checkouts. But it is not implemented. When just try to clone from file:///root first instead of https://savanah is easy to implement and will save many ressources.
<civodul>zimoun: we're not gonna solve this in an IRC discussion :-)
<zimoun>yes, it could be read-only. Only cloned at install time.
<zimoun>Just, “guix pull” takes 10min vs 3min (if I manage the clone by hand). 3min include authentication. It is ~7min for fetching Git data.
<zimoun>I mean, the first time an user install Guix, they clone once because they run “guix pull” as root for updating the guix-daemon and then another as user. I miss why the first clone (as root) could not be cached under /var/guix/checkouts (yeah that’s better than reuse /root/.cache :-))