Re: [PATCH] gitweb: snapshot cleanups & support for offering multiple formats
- From
Matt McCutchen <hashproduct@gmail.com>
- Date
- Jul 12, 2007, 01:15 UTC
- Message-ID
- <3bbc18d20707111815i1de3cb35sadfa316ddee7f3f6@mail.gmail.com>
- In-Reply-To
- <7vir8q4opc.fsf@assigned-by-dhcp.cox.net>
On 7/11/07, Junio C Hamano <gitster@pobox.com> wrote:
Show 5 quoted lines
> 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. 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.
Show 9 quoted lines
> > 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?
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?
Matt