From: Fraser Tweedale <frase@frase.id.au>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] supply '-n' to gzip to produce identical tarballs
Date: Sun, 10 Apr 2011 20:13:46 +1000 [thread overview]
Message-ID: <20110410101345.GD1521@bacardi.wooloowin.frase.id.au> (raw)
In-Reply-To: <m362qm4kvu.fsf@localhost.localdomain>
On Sun, Apr 10, 2011 at 12:38:32AM -0700, Jakub Narebski wrote:
> Fraser Tweedale <frase@frase.id.au> writes:
>
> > Subject: [PATCH] supply '-n' to gzip to produce identical tarballs
> >
> > Without the '-n' ('--no-name') argument, gzip includes timestamp in
> > output which results in different files. Important systems like FreeBSD
> > ports and perhaps many others hash/checksum downloaded files to ensure
> > integrity. For projects that do not release official archives, gitweb's
> > snapshot feature would be an excellent stand-in but for the fact that the
> > files it produces are not identical.
> >
> > Supply '-n' to gzip to exclude timestamp from output and produce idential
> > output every time.
> >
> > Signed-off-by: Fraser Tweedale <frase@frase.id.au>
>
> Very good description, except subject line should denote which
> subsystem this commit affects, i.e.:
>
> gitweb: supply '-n' to gzip to produce identical tarballs
>
Thank you. Do I need to amend the message and resubmit the patch? (first
time submitting a patch to git; I used git send-email).
> Hmmm... gzip in gitweb's 'snapshot' action gets data compressed from
> standard input, not from filesystem. Isn't -n / --no-name no-op then?
> Just asking...
>
It is not no-op; I have tested to confirm this. I'm not sure whether
a file name is recorded in the stdin case, or if so what it is, but the
timestamp is recorded and that makes the difference.
> > ---
> > gitweb/gitweb.perl | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> > index 46186ab..2ab08da 100755
> > --- a/gitweb/gitweb.perl
> > +++ b/gitweb/gitweb.perl
> > @@ -186,7 +186,7 @@ our %known_snapshot_formats = (
> > 'type' => 'application/x-gzip',
> > 'suffix' => '.tar.gz',
> > 'format' => 'tar',
> > - 'compressor' => ['gzip']},
> > + 'compressor' => ['gzip', '-n']},
>
> Perhaps it would be more clear to use
>
> + 'compressor' => ['gzip', '--no-name']},
>
> >
> > 'tbz2' => {
> > 'display' => 'tar.bz2',
> > --
> > 1.7.4.3
> >
>
Definitely, if the argument is the same (or even present) on all systems.
On FreeBSD and GNU both '-n' and '--no-name' are do the job, but an audit
of other systems should be done to ensure they don't break. I chose '-n'
as it seemed the more conservative choice.
> --
> Jakub Narebski
> Poland
> ShadeHawk on #git
next prev parent reply other threads:[~2011-04-10 10:31 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-10 6:12 [PATCH] supply '-n' to gzip to produce identical tarballs Fraser Tweedale
2011-04-10 7:38 ` Jakub Narebski
2011-04-10 10:13 ` Fraser Tweedale [this message]
2011-04-10 13:55 ` Jakub Narebski
2011-04-11 19:24 ` Junio C Hamano
2011-04-11 20:59 ` Fraser Tweedale
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: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110410101345.GD1521@bacardi.wooloowin.frase.id.au \
--to=frase@frase.id.au \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
/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://80x24.org/mirrors/git.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).