From: Matt McCutchen Date: Thu, 12 Jul 2007 01:15:45 GMT Subject: Re: [PATCH] gitweb: snapshot cleanups & support for offering multiple formats Message-ID: <3bbc18d20707111815i1de3cb35sadfa316ddee7f3f6@mail.gmail.com> In-Reply-To: <7vir8q4opc.fsf@assigned-by-dhcp.cox.net> On 7/11/07, Junio C Hamano wrote: > Jakub Narebski 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. > > 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