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

3 messages from 2006-08-04 to 2006-08-05. Participants: Luben Tuikov, Junio C Hamano.
Thread: https://gitlist.dev/t/5135

## Luben Tuikov, 2006-08-04 22:11

Subject: [PATCH 2/4] gitweb: bugfix: git_commit and git_commitdiff parents
Message-ID: <20060804221147.18778.qmail@web31801.mail.mud.yahoo.com>
URL: https://gitlist.dev/e/20060804221147.18778.qmail%40web31801.mail.mud.yahoo.com

```
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(-)

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, 2006-08-05 00:00

Subject: Re: [PATCH 2/4] gitweb: bugfix: git_commit and git_commitdiff parents
Message-ID: <7vzmekgigm.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vzmekgigm.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20060804221147.18778.qmail@web31801.mail.mud.yahoo.com>

```
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???

```

## Luben Tuikov, 2006-08-05 00:53

Subject: Re: [PATCH 2/4] gitweb: bugfix: git_commit and git_commitdiff parents
Message-ID: <20060805005355.41970.qmail@web31805.mail.mud.yahoo.com>
URL: https://gitlist.dev/e/20060805005355.41970.qmail%40web31805.mail.mud.yahoo.com
In-Reply-To: <7vzmekgigm.fsf@assigned-by-dhcp.cox.net>

```
--- Junio C Hamano <junkio@cox.net> wrote:
> 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

```
