Re: [PATCH] gitweb: Support comparing blobs (files) with different names
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Mar 31, 2007, 16:16 UTC
- Message-ID
- <200703311816.05283.jnareb@gmail.com>
- In-Reply-To
- <200703310155.14452.jnareb@gmail.com>
On Sat, Mar 31, 2007 at 01:55 +0200, Jakub Narebski wrote:
Show 34 quoted lines
> On Wed, Mar 28, 2007, Martin Koegler wrote: > >> I created a blob with a "strange" filename: &()=!"§$%[<>]*#+_;. >> In the result of the blob view, the " is not escaped in the filename in the header >> and a strange content type is returned: >> >> $ telnet localhost 80 >> Trying 127.0.0.1... >> Connected to localhost. >> Escape character is '^]'. >> GET /gitweb/gitweb.cgi?p=t/.git;a=blob;f=%26()%3D%21%22%A7%24%25%5B%3C%3E%5D%2A%23%2B_%3B.;hb=7bfed2588bee66b33db544830606fa6606478fd9 HTTP/1.0 >> >> HTTP/1.1 200 OK >> Date: Wed, 28 Mar 2007 19:55:36 GMT >> Server: Apache >> Content-disposition: inline; filename="&()=!"§$%[<>]*#+_;." >> Expires: Thu, 29 Mar 2007 19:55:39 GMT >> Connection: close >> Content-Type: application/vnd.mif >> >> xx > > There are two separate things. > > First is not escaped filename in HTTP header. There was some discussion > about this, and even patch by Luben Tuikov which added to_qtext > subroutine to deal with escaping in HTTP (which has diferent rules than > escaping in HTML, or in HTML attributes) > * gitweb: using quotemeta > http://thread.gmane.org/gmane.comp.version-control.git/28050/ > * [PATCH] gitweb: Convert Content-Disposition filenames into qtext > http://thread.gmane.org/gmane.comp.version-control.git/28437 > But the patch was newer accepted; either lost in the noise, or in lack > of summary to the discussion.
Junio, do you remember by chance why this patch was dropped?
Show 8 quoted lines
> Second is detecting file as binary (for text files we always return > HTML), and content type set. Gitweb checks mimetype of a file (based > on extension, mainly) by default using /etc/mime.magic, and if it is > neither text/* nor HTML images (png, jpg, gif) it uses "blobdiff_plain" > view. Perhaps instead of just calling git_blob_plain($mimetype) we > should do a redirect (but then how to pass detected mimetype?). It looks > like there is an error with mimetype detection: could you tell me the > line with "application/vnd.mif" in your /etc/mime.types?
Unfortunately trying to find the source of this error failed (perhaps due to name of file slightly changed by accident), and I get no errors. WORKSFORME aka SAA#1 (Standard Answer of Admin #1: Works for me).
I use the following script to debug errors in gitweb:
-- >8 ------------------------------------ #!/bin/sh
export GATEWAY_INTERFACE="CGI/1.1" export HTTP_ACCEPT="*/*" export REQUEST_METHOD="GET" export QUERY_STRING=""$1"" export PATH_INFO=""$2""
ddd "/var/www/cgi-bin/gitweb/gitweb.cgi" -- >8 ------------------------------------
-- Jakub Narebski Poland