threads / patch / 5135

patch, 4 partsgitweb: bugfix: git_commit and git_commitdiff parents

Subject: [PATCH 2/4] gitweb: bugfix: git_commit and git_commitdiff parents

## tl;dr

3 messages between Aug 4, 2006 and Aug 5, 2006. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Luben Tuikov· Aug 4, 2006, 22:11 UTC · lore
In git_commit() the hash base of $from_id is $parent, not
$hash:
 - If status is "D", then action blob for $from_id wants
   $parent, not $hash.  History needs $parent too.
 - If status is "R", then action blob for $from_id wants
   $parent, not $hash.
In git_commitdiff() the hash base of $from_id is
$hash_parent, not $hash:
 - If status is "D".
 - If status is "M".
Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
---
 gitweb/gitweb.perl |   16 +++++++++-------
 1 files changed, 9 insertions(+), 7 deletions(-)
Show changes to gitweb/gitweb.perl +9 −7
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 049f27e..69b787f 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2018,11 +2018,11 @@ sub git_commit {
 			      "<td class=\"link\">" . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$to_id;hb=$hash;f=$file")}, "blob") . "</td>\n";
 		} elsif ($status eq "D") {
 			print "<td>" .
-			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash;f=$file"), -class => "list"}, esc_html($file)) . "</td>\n" .
+			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$parent;f=$file"), -class => "list"}, esc_html($file)) . "</td>\n" .
 			      "<td><span class=\"file_status deleted\">[deleted " . file_type($from_mode). "]</span></td>\n" .
 			      "<td class=\"link\">" .
-			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash;f=$file")}, "blob") .
-			      " | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=history;hb=$hash;f=$file")}, "history") .
+			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$parent;f=$file")}, "blob") .
+			      " | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=history;hb=$parent;f=$file")}, "history") .
 			      "</td>\n"
 		} elsif ($status eq "M" || $status eq "T") {
 			my $mode_chnge = "";
@@ -2064,7 +2064,7 @@ sub git_commit {
 			print "<td>" .
 			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$to_id;hb=$hash;f=$to_file"), -class => "list"}, esc_html($to_file)) . "</td>\n" .
 			      "<td><span class=\"file_status moved\">[moved from " .
-			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash;f=$from_file"), -class => "list"}, esc_html($from_file)) .
+			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$parent;f=$from_file"), -class => "list"}, esc_html($from_file)) .
 			      " with " . (int $similarity) . "% similarity$mode_chng]</span></td>\n" .
 			      "<td class=\"link\">" .
 			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$to_id;hb=$hash;f=$to_file")}, "blob");
@@ -2178,15 +2178,17 @@ sub git_commitdiff {
 			git_diff_print(undef, "/dev/null", $to_id, "b/$file");
 		} elsif ($status eq "D") {
 			print "<div class=\"diff_info\">" . file_type($from_mode) . ":" .
-			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash;f=$file")}, $from_id) . "(deleted)" .
+			      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash_parent;f=$file")}, $from_id) . "(deleted)" .
 			      "</div>\n";
 			git_diff_print($from_id, "a/$file", undef, "/dev/null");
 		} elsif ($status eq "M") {
 			if ($from_id ne $to_id) {
 				print "<div class=\"diff_info\">" .
-				      file_type($from_mode) . ":" . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash;f=$file")}, $from_id) .
+				      file_type($from_mode) . ":" .
+				      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$from_id;hb=$hash_parent;f=$file")}, $from_id) .
 				      " -> " .
-				      file_type($to_mode) . ":" . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$to_id;hb=$hash;f=$file")}, $to_id);
+				      file_type($to_mode) . ":" .
+				      $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blob;h=$to_id;hb=$hash;f=$file")}, $to_id);
 				print "</div>\n";
 				git_diff_print($from_id, "a/$file",  $to_id, "b/$file");
 			}
-- 
1.4.2.rc3.g6df3
Junio C Hamano· Aug 5, 2006, 00:00 UTC · re: Luben Tuikov · lore

Re: [PATCH 2/4] gitweb: bugfix: git_commit and git_commitdiff parents

Luben Tuikov <ltuikov@yahoo.com> writes:
Show 11 quoted lines
> In git_commit() the hash base of $from_id is $parent, not
> $hash:
>  - If status is "D", then action blob for $from_id wants
>    $parent, not $hash.  History needs $parent too.
>  - If status is "R", then action blob for $from_id wants
>    $parent, not $hash.
>
> In git_commitdiff() the hash base of $from_id is
> $hash_parent, not $hash:
>  - If status is "D".
>  - If status is "M".
... stopped in mid sentence???
Luben Tuikov· Aug 5, 2006, 00:53 UTC · re: Junio C Hamano · lore

Re: [PATCH 2/4] gitweb: bugfix: git_commit and git_commitdiff parents

--- Junio C Hamano <junkio@cox.net> wrote:
Show 15 quoted lines
> Luben Tuikov <ltuikov@yahoo.com> writes:
> 
> > In git_commit() the hash base of $from_id is $parent, not
> > $hash:
> >  - If status is "D", then action blob for $from_id wants
> >    $parent, not $hash.  History needs $parent too.
> >  - If status is "R", then action blob for $from_id wants
> >    $parent, not $hash.
> >
> > In git_commitdiff() the hash base of $from_id is
> > $hash_parent, not $hash:
> >  - If status is "D".
> >  - If status is "M".
> 
> ... stopped in mid sentence???

Sorry. The meaning is the same as for git_commit() and as the paragraph text ("In git_commitdiff() the hash base of ...").

   Luben

← back to recent threads