From: Jakub Narebski <jnareb@gmail.com>
To: "Matt McCutchen" <hashproduct@gmail.com>
Cc: "Junio C Hamano" <gitster@pobox.com>,
git@vger.kernel.org, "Petr Baudis" <pasky@suse.cz>,
"Luben Tuikov" <ltuikov@yahoo.com>
Subject: Re: [PATCH] gitweb: snapshot cleanups & support for offering multiple formats
Date: Thu, 12 Jul 2007 13:07:03 +0200 [thread overview]
Message-ID: <200707121307.03612.jnareb@gmail.com> (raw)
In-Reply-To: <3bbc18d20707111815i1de3cb35sadfa316ddee7f3f6@mail.gmail.com>
On Thu, 12 July 2007, Matt McCutchen wrote:
> On 7/11/07, Junio C Hamano <gitster@pobox.com> wrote:
>> Jakub Narebski <jnareb@gmail.com> writes:
>>
>>> I'm not sure if we want to store whole 'application/x-gzip' or only
>>> 'x-gzip' part of mime type, and if we want to store compressor as
>>> '| gzip' or simply as 'gzip'.
>
> Storing only 'x-gzip' assumes that all archive formats have MIME types
> beginning with 'application/'. Even if this assumption is justified
> by the MIME specification, I felt it was inappropriate to code it into
> gitweb.
Good argument. Besides, now we use it only in one place, but if we
would in the future use it in other place having full mimetype would
make it easier.
> The advantage of '| gzip' is that the lack of a compressor is
> not a special case. This is why I wrote %known_snapshot_formats the
> way I did, but of course you all are welcome to overrule me.
I wrote about this because I'm thinking about replacing the few
pipelines we use in gitweb[*1*], including the snapshot one, with
the list form, which has the advantage of avoiding spawning the shell
(performance) and not dealing with shell quoting of arguments (security
and errors), like we did for simple calling of git commands to read
from in the commit b9182987a80f7e820cbe1f8c7c4dc26f8586e8cd
"gitweb: Use list for of open for running git commands, thorougly"
Thus I'd rather have list of extra commands and arguments instead of
pipe as a string, i.e. 'gzip' instead of '| gzip', and 'gzip', '-9'
instead of '| gzip -9'.
[*1*] We currently use pipelines for snapshots which need external
compressor, like tgz and tbz2, and for pickaxe search.
>>> This would break not only existing _gitweb_ configuration (when
>>> gitweb admin installs new gitweb it isn't that hard to correct
>>> gitweb config), but also git _repositories_ config: gitweb.snapshot
>>> no longer work as it worked before, for example neither 'gzip'
>>> nor 'bzip2' values work anymore ('zip' doesn't stop working).
>>
>> I realized after seeing your other message on this patch that
>> this can be done while retaining backward compatibility, as you
>> suggested. Matt, does Jakub's suggestion make sense to you?
>
> It's not clear to me what the suggestion is: offer format names 'gzip'
> and 'bzip2' instead of 'tgz' and 'tbz2', or in addition to them, or
> what? I prefer 'tgz' and 'tbz2' because they carry more information
> and are properly analogous to 'zip', so I don't want to offer 'gzip'
> and 'bzip2' instead of them. Furthermore, I would like the user to
> see 'snapshot (tgz tbz2)' even if the repository owner wrote 'gzip
> bzip2', so just adding two rows to %known_snapshot_formats is
> insufficient. Either an additional column could be added to
> %known_snapshot_formats for the display name, or 'gzip' and 'bzip2'
> could be specified as aliases in %known_snapshot_formats and
> feature_snapshot could be taught to resolve them. I would prefer the
> second option; shall I implement it?
I also prefer the second option, perhaps as simple as 'gzip' => 'tbz'
and 'bzip2' => 'tbz2', and of course accompaning code to deal with this.
As to "display name" column: I'm not sure if for example 'tar.gz'
instead of 'tgz' would be not easier to understand.
> It would be possible to make the gitweb site configuration
> backward-compatible too; here's one possible approach. On startup,
> gitweb would check whether $feature{'snapshot'}{'default'} is a
> three-element list that appears to be in the old format. If so, it
> would save the settings in $known_snapshot_formats{'default'} and then
> set $feature{'snapshot'}{'default'} = 'default' . This is a hack; is
> it justified by the compatibility benefit?
If you implement 'gzip' and 'bzip2' as aliases, it could be as simple
as just taking last non-false element of array if the array has more
than one element. But I'm not sure if it is worth it.
But we should probably error out with some error message on
incompatibile gitweb site configuration; I'm not sure...
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2007-07-12 11:07 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-28 18:02 [PATCH] gitweb: snapshot cleanups & support for offering multiple formats Matt McCutchen
2007-07-07 20:52 ` Junio C Hamano
2007-07-08 9:06 ` Junio C Hamano
2007-07-11 15:55 ` Jakub Narebski
2007-07-11 21:26 ` Junio C Hamano
2007-07-12 1:15 ` Matt McCutchen
2007-07-12 11:07 ` Jakub Narebski [this message]
2007-07-17 18:03 ` Matt McCutchen
2007-07-17 19:11 ` Matt McCutchen
2007-07-18 23:40 ` Jakub Narebski
2007-07-19 1:12 ` Junio C Hamano
2007-07-19 3:30 ` Luben Tuikov
2007-07-19 7:30 ` Jakub Narebski
2007-07-19 7:40 ` Luben Tuikov
2007-07-25 18:39 ` [RFC/PATCH] gitweb: Enable transparent compression form HTTP output Jakub Narebski
2007-08-25 18:03 ` Petr Baudis
2007-08-25 22:09 ` Jakub Narebski
2007-08-25 22:14 ` Petr Baudis
2007-08-27 11:01 ` Jakub Narebski
2007-07-19 9:05 ` [PATCH] gitweb: snapshot cleanups & support for offering multiple formats Jakub Narebski
2007-07-20 4:29 ` Junio C Hamano
2007-07-19 9:14 ` Jakub Narebski
2007-07-21 23:30 ` Jakub Narebski
2007-07-22 5:26 ` Junio C Hamano
2007-07-22 15:05 ` Matt McCutchen
2007-07-22 21:41 ` [PATCH] gitweb: Fix support for legacy gitweb config for snapshots Jakub Narebski
2007-07-22 23:10 ` Matt McCutchen
2007-07-22 23:35 ` Junio C Hamano
2007-07-08 21:54 ` [PATCH] gitweb: snapshot cleanups & support for offering multiple formats Junio C Hamano
2007-07-09 22:52 ` Matt McCutchen
2007-07-09 23:21 ` Matt McCutchen
2007-07-10 23:41 ` Jakub Narebski
2007-07-09 23:48 ` Junio C Hamano
2007-07-10 1:14 ` Matt McCutchen
2007-07-10 1:14 ` Matt McCutchen
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=200707121307.03612.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hashproduct@gmail.com \
--cc=ltuikov@yahoo.com \
--cc=pasky@suse.cz \
/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.
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 NNTP newsgroup(s).