unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Leo Famulari" <leo@famulari.name>
To: Adam <adam.quandour@gmail.com>,
	"Christopher Baines via Development of GNU Guix and the GNU
	System distribution." <guix-devel@gnu.org>
Subject: Re: Is git the best tool for pulling packages?
Date: Tue, 23 Apr 2024 10:00:29 -0400	[thread overview]
Message-ID: <594fad0c-ec83-4003-b30f-e3ed1e62dc7b@app.fastmail.com> (raw)
In-Reply-To: <CA+jnL0O07yJKn_qZ1WRmZB8+c9jGxjLbzE-mG5CGLO5RJcxMgQ@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1634 bytes --]

From a computational perspective, downloading tarballs is much simpler than fetching from Git.

But Git offers so many advantages, and computing has become so inexpensive, that it's become very common to use Git instead.

Recent Git implementations have optimized serving of specific Git commits, as compared to fetching the entire Git history. That means that you can fetch a single revision of a huge repo, using a small amount of bandwidth.

For the specific case of `guix pull`, the Git server is hosted at Savannah, which does not use one of these optimized Git implementations, so it is relatively slow and expensive to fetch.

Additionally, Guix's authentication mechanism requires fetching many Git revisions in order to verify the chain of trusted revisions (Git commits).

This requirement to fetch many Git revisions, combined with the unoptimized Got server on Savannah, means that `guix pull` may be slower than comparable actions on other distros, especially the first time, and if you haven't pulled in a while 

On Sun, Apr 21, 2024, at 18:31, Adam wrote:
> Hi guix!
> Recently I used nixos on one of my machines. And I noticed people there use tar balls for fetching package definitions. And It worked much faster for me.
> That was surprising and I decided to write this letter.
> Is git the right tool for getting new package definitions? What if git commits history will become enormous? 
> As I see, first guix pull running too long for a lot of people.
> Probably there are ways to cache all of this.
> Anyway,  I'm just curious about it. If there are already answers for my question, I would like to read them.

[-- Attachment #2: Type: text/html, Size: 2260 bytes --]

  reply	other threads:[~2024-04-23 14:01 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-21 22:31 Is git the best tool for pulling packages? Adam
2024-04-23 14:00 ` Leo Famulari [this message]
2024-04-23 15:11 ` Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=594fad0c-ec83-4003-b30f-e3ed1e62dc7b@app.fastmail.com \
    --to=leo@famulari.name \
    --cc=adam.quandour@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).