diff options
| author | Junio C Hamano <gitster@pobox.com> | 2008-12-16 19:42:02 -0800 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2008-12-16 23:31:58 -0800 | 
| commit | b54dc9fdb993a54bba11df3f247e836158b8c1f0 (patch) | |
| tree | ff7e4c318ddb443e9968f436bad92b5311daf000 /gitweb/gitweb.perl | |
| parent | 98171a07ae74e796a6c78e7c446ac9a5aaf28c07 (diff) | |
| download | git-b54dc9fdb993a54bba11df3f247e836158b8c1f0.tar.gz | |
gitweb: do not run "git diff" that is Porcelain
Jakub says that legacy-style URI to view two blob differences are never
generated since 1.4.3.  This codepath runs "git diff" Porcelain from the
gitweb, which is a no-no.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'gitweb/gitweb.perl')
| -rwxr-xr-x | gitweb/gitweb.perl | 40 | 
1 files changed, 3 insertions, 37 deletions
| diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 6eb370d8de..8f574c7b36 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -5285,43 +5285,9 @@ sub git_blobdiff {  			or die_error(500, "Open git-diff-tree failed");  	} -	# old/legacy style URI -	if (!%diffinfo && # if new style URI failed -	    defined $hash && defined $hash_parent) { -		# fake git-diff-tree raw output -		$diffinfo{'from_mode'} = $diffinfo{'to_mode'} = "blob"; -		$diffinfo{'from_id'} = $hash_parent; -		$diffinfo{'to_id'}   = $hash; -		if (defined $file_name) { -			if (defined $file_parent) { -				$diffinfo{'status'} = '2'; -				$diffinfo{'from_file'} = $file_parent; -				$diffinfo{'to_file'}   = $file_name; -			} else { # assume not renamed -				$diffinfo{'status'} = '1'; -				$diffinfo{'from_file'} = $file_name; -				$diffinfo{'to_file'}   = $file_name; -			} -		} else { # no filename given -			$diffinfo{'status'} = '2'; -			$diffinfo{'from_file'} = $hash_parent; -			$diffinfo{'to_file'}   = $hash; -		} - -		# non-textual hash id's can be cached -		if ($hash =~ m/^[0-9a-fA-F]{40}$/ && -		    $hash_parent =~ m/^[0-9a-fA-F]{40}$/) { -			$expires = '+1d'; -		} - -		# open patch output -		open $fd, "-|", git_cmd(), "diff", @diff_opts, -			'-p', ($format eq 'html' ? "--full-index" : ()), -			$hash_parent, $hash, "--" -			or die_error(500, "Open git-diff failed"); -	} else  { -		die_error(400, "Missing one of the blob diff parameters") -			unless %diffinfo; +	# old/legacy style URI -- not generated anymore since 1.4.3. +	if (!%diffinfo) { +		die_error('404 Not Found', "Missing one of the blob diff parameters")  	}  	# header | 
