all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Eric Bavier <ericbavier@centurylink.net>
Cc: guix-devel@gnu.org
Subject: Re: Compress VCS checkouts?
Date: Wed, 07 Feb 2018 22:56:28 +0100	[thread overview]
Message-ID: <87y3k4xy43.fsf@gnu.org> (raw)
In-Reply-To: <20180205184922.3ff8e330@centurylink.net> (Eric Bavier's message of "Mon, 5 Feb 2018 18:49:22 -0600")

Hi Eric,

Eric Bavier <ericbavier@centurylink.net> skribis:

> On Mon, 05 Feb 2018 11:27:10 +0100
> ludo@gnu.org (Ludovic Courtès) wrote:
>
>> Hello!
>> 
>> Eric Bavier <ericbavier@centurylink.net> skribis:
>> 
>> > A while back I toyed with the idea of a "Sources DVD" for Guix, much
>> > like Trisquel has. While looking into the feasability of this, I
>> > noticed that the git/svn/cvs/hg checkouts our packages use are not
>> > compressed in the store.  So I wrote a simple script to compare the raw
>> > size of all source checkouts with their corresponding xz-compressed
>> > tarballs.  
>> >
>> > At the time, I couldn't convince myself the trouble was worth the
>> > effort; we had only 385MiB of uncompressed source checkouts, which
>> > would compress to 135MiB.
>> >
>> > Since that initial investigation, the number of packages using VCS
>> > checkouts has risen from 50 to 389, and the on-disk size of that source
>> > has risen to 3784MiB uncompressed.  We could compress that down to
>> > 538MiB.
>> >
>> > Compression in not free, but I think it would be nice for our build
>> > servers who have to store and serve (which, iirc, requires them to
>> > compress it anyhow) this source.  
>> 
>> ‘guix publish -C’ always compresses store items, unless they are regular
>> files ending in “.gz”, “.xz”, etc.  So there’s no problem here.
>
> I see, ok.
>
>> 
>> It seems to me that the only benefit of compressing checkouts would be
>> the use case you’re talking about.  For everyday use, it’s actually more
>> efficient to leave the uncompressed, so that people don’t end up doing
>> round of compression/decompression when they run “guix build”.
>
> Often, people would end up fetching the compressed source from a
> substitute server, no?

Specifically, they download a compressed nar that contains the
uncompressed checkout.

> And currently I already need to uncompress what I get from a
> substitute server before building.
>
> But now I'm wondering why we bother with the "repack" portion of
> "patch-and-repack"?

Good question!  It’s mostly because it “looked nicer” this way (and
maybe at the time some of the code did not properly handle non-tarball
sources.)  I hear we could apply the same “reasoning” (if we can call it
this way) to checkouts.  Hmm!

>> That said, at worst, this could be addressed by writing a specific tool
>> for the job.
>
> Yes. I was hoping it could be avoided though.

The tool could be relatively simple.

Ludo’.

      reply	other threads:[~2018-02-07 21:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-02 20:50 Compress VCS checkouts? Eric Bavier
2018-02-03 20:10 ` Efraim Flashner
2018-02-05 10:27 ` Ludovic Courtès
2018-02-06  0:49   ` Eric Bavier
2018-02-07 21:56     ` Ludovic Courtès [this message]

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

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

  git send-email \
    --in-reply-to=87y3k4xy43.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=ericbavier@centurylink.net \
    --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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.