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’.
prev parent 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.