* [PATCH 4/4] gitweb: Fix broken blob action parameters on blob/commitdiff pages
@ 2013-04-08 20:10 Jürgen Kreileder
2013-04-09 15:25 ` Jakub Narębski
0 siblings, 1 reply; 3+ messages in thread
From: Jürgen Kreileder @ 2013-04-08 20:10 UTC (permalink / raw)
To: git
Fix broken blob action parameters on blobdiff and commitdiff pages by
explicitly passing variables instead of relying on global ones.
(The broken parameters on blob links lead to blob pages which show the
blob but with a hash instead of a commit message and have broken
blob_plain (404 - Cannot find file) and tree links (404 - Reading tree
failed))
Signed-off-by: Jürgen Kreileder <jk@blackdown.de>
---
gitweb/gitweb.perl | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 1309196..995e8fb 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2258,7 +2258,7 @@ sub format_extended_diff_header_line {
# format from-file/to-file diff header
sub format_diff_from_to_header {
- my ($from_line, $to_line, $diffinfo, $from, $to, @parents) = @_;
+ my ($from_line, $to_line, $diffinfo, $from, $to, $hash, @parents) = @_;
my $line;
my $result = '';
@@ -2324,7 +2324,7 @@ sub format_diff_from_to_header {
# create note for patch simplified by combined diff
sub format_diff_cc_simplified {
- my ($diffinfo, @parents) = @_;
+ my ($diffinfo, $hash, @parents) = @_;
my $result = '';
$result .= "<div class=\"diff header\">" .
@@ -3592,7 +3592,8 @@ sub parse_ls_tree_line {
# generates _two_ hashes, references to which are passed as 2 and 3 argument
sub parse_from_to_diffinfo {
- my ($diffinfo, $from, $to, @parents) = @_;
+ my ($diffinfo, $from, $to, $hash, @parents) = @_;
+ my ($hash_parent) = $parents[0];
if ($diffinfo->{'nparents'}) {
# combined diff
@@ -5312,7 +5313,7 @@ sub git_patchset_body {
if ($is_combined) {
while ($to_name ne $diffinfo->{'to_file'}) {
print "<div class=\"patch\" id=\"patch". ($patch_idx+1) ."\">\n" .
- format_diff_cc_simplified($diffinfo, @hash_parents) .
+ format_diff_cc_simplified($diffinfo, $hash, @hash_parents) .
"</div>\n"; # class="patch"
$patch_idx++;
@@ -5324,7 +5325,7 @@ sub git_patchset_body {
}
# modifies %from, %to hashes
- parse_from_to_diffinfo($diffinfo, \%from, \%to, @hash_parents);
+ parse_from_to_diffinfo($diffinfo, \%from, \%to, $hash, @hash_parents);
# this is first patch for raw difftree line with $patch_idx index
# we index @$difftree array from 0, but number patches from 1
@@ -5367,7 +5368,7 @@ sub git_patchset_body {
print format_diff_from_to_header($last_patch_line, $patch_line,
$diffinfo, \%from, \%to,
- @hash_parents);
+ $hash, @hash_parents);
# the patch itself
LINE:
@@ -5404,7 +5405,7 @@ sub git_patchset_body {
# generate anchor for "patch" links in difftree / whatchanged part
print "<div class=\"patch\" id=\"patch". ($patch_idx+1) ."\">\n" .
- format_diff_cc_simplified($diffinfo, @hash_parents) .
+ format_diff_cc_simplified($diffinfo, $hash, @hash_parents) .
"</div>\n"; # class="patch"
$patch_number++;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 4/4] gitweb: Fix broken blob action parameters on blob/commitdiff pages
2013-04-08 20:10 [PATCH 4/4] gitweb: Fix broken blob action parameters on blob/commitdiff pages Jürgen Kreileder
@ 2013-04-09 15:25 ` Jakub Narębski
2013-04-09 20:17 ` Jürgen Kreileder
0 siblings, 1 reply; 3+ messages in thread
From: Jakub Narębski @ 2013-04-09 15:25 UTC (permalink / raw)
To: Jürgen Kreileder; +Cc: git
W dniu 08.04.2013 22:10, Jürgen Kreileder pisze:
> Fix broken blob action parameters on blobdiff and commitdiff pages by
> explicitly passing variables instead of relying on global ones.
Do I understand it correctly that those variables (e.g. $hash variable
in git_patchset_body in second chunk below, after this change passed
as parameter to format_diff_cc_simplified()) can be filled in then,
or at least adjusted correctly?
> (The broken parameters on blob links lead to blob pages which show the
> blob but with a hash instead of a commit message and have broken
> blob_plain (404 - Cannot find file) and tree links (404 - Reading tree
> failed))
>
> Signed-off-by: Jürgen Kreileder <jk@blackdown.de>
I wonder how we missed this. Does this happen always, or in some
specific conditions?
Anyway, this change is a good change. Internal subroutines should not
use global variables.
I hope that in the future we would get rid of most global variables...
Acked-by: Jakub Narebski <jnareb@gmail.com>
[not tested]
> # create note for patch simplified by combined diff
> sub format_diff_cc_simplified {
> - my ($diffinfo, @parents) = @_;
> + my ($diffinfo, $hash, @parents) = @_;
> my $result = '';
>
> $result .= "<div class=\"diff header\">" .
[...]
> @@ -5404,7 +5405,7 @@ sub git_patchset_body {
>
> # generate anchor for "patch" links in difftree / whatchanged part
> print "<div class=\"patch\" id=\"patch". ($patch_idx+1) ."\">\n" .
> - format_diff_cc_simplified($diffinfo, @hash_parents) .
> + format_diff_cc_simplified($diffinfo, $hash, @hash_parents) .
> "</div>\n"; # class="patch"
>
> $patch_number++;
>
--
Jakub Narębski
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-04-09 20:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-08 20:10 [PATCH 4/4] gitweb: Fix broken blob action parameters on blob/commitdiff pages Jürgen Kreileder
2013-04-09 15:25 ` Jakub Narębski
2013-04-09 20:17 ` Jürgen Kreileder
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).