Skip to content

Commit

Permalink
gitweb: Separate printing of git_tree row into git_print_tree_entry
Browse files Browse the repository at this point in the history
This is preparation for "tree blame" (similar to what ViewVC shows)
output, i.e. for each entry give commit where it was changed.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Jakub Narebski authored and Junio C Hamano committed Aug 31, 2006
1 parent cb849b4 commit fa70200
Showing 1 changed file with 59 additions and 44 deletions.
103 changes: 59 additions & 44 deletions gitweb/gitweb.perl
Original file line number Diff line number Diff line change
Expand Up @@ -1475,6 +1475,62 @@ sub git_print_simplified_log {
-remove_title => $remove_title);
}

# print tree entry (row of git_tree), but without encompassing <tr> element
sub git_print_tree_entry {
my ($t, $basedir, $hash_base, $have_blame) = @_;

my %base_key = ();
$base_key{hash_base} = $hash_base if defined $hash_base;

print "<td class=\"mode\">" . mode_str($t->{'mode'}) . "</td>\n";
if ($t->{'type'} eq "blob") {
print "<td class=\"list\">" .
$cgi->a({-href => href(action=>"blob", hash=>$t->{'hash'},
file_name=>"$basedir$t->{'name'}", %base_key),
-class => "list"}, esc_html($t->{'name'})) .
"</td>\n" .
"<td class=\"link\">" .
$cgi->a({-href => href(action=>"blob", hash=>$t->{'hash'},
file_name=>"$basedir$t->{'name'}", %base_key)},
"blob");
if ($have_blame) {
print " | " .
$cgi->a({-href => href(action=>"blame", hash=>$t->{'hash'},
file_name=>"$basedir$t->{'name'}", %base_key)},
"blame");
}
if (defined $hash_base) {
print " | " .
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
hash=>$t->{'hash'}, file_name=>"$basedir$t->{'name'}")},
"history");
}
print " | " .
$cgi->a({-href => href(action=>"blob_plain",
hash=>$t->{'hash'}, file_name=>"$basedir$t->{'name'}")},
"raw") .
"</td>\n";

} elsif ($t->{'type'} eq "tree") {
print "<td class=\"list\">" .
$cgi->a({-href => href(action=>"tree", hash=>$t->{'hash'},
file_name=>"$basedir$t->{'name'}", %base_key)},
esc_html($t->{'name'})) .
"</td>\n" .
"<td class=\"link\">" .
$cgi->a({-href => href(action=>"tree", hash=>$t->{'hash'},
file_name=>"$basedir$t->{'name'}", %base_key)},
"tree");
if (defined $hash_base) {
print " | " .
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
file_name=>"$basedir$t->{'name'}")},
"history");
}
print "</td>\n";
}
}

## ......................................................................
## functions printing large fragments of HTML

Expand Down Expand Up @@ -2513,14 +2569,13 @@ sub git_tree {
my $refs = git_get_references();
my $ref = format_ref_marker($refs, $hash_base);
git_header_html();
my %base_key = ();
my $base = "";
my $have_blame = gitweb_check_feature('blame');
if (defined $hash_base && (my %co = parse_commit($hash_base))) {
$base_key{hash_base} = $hash_base;
git_print_page_nav('tree','', $hash_base);
git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
} else {
undef $hash_base;
print "<div class=\"page_nav\">\n";
print "<br/><br/></div>\n";
print "<div class=\"title\">$hash</div>\n";
Expand All @@ -2542,48 +2597,8 @@ sub git_tree {
}
$alternate ^= 1;

print "<td class=\"mode\">" . mode_str($t{'mode'}) . "</td>\n";
if ($t{'type'} eq "blob") {
print "<td class=\"list\">" .
$cgi->a({-href => href(action=>"blob", hash=>$t{'hash'},
file_name=>"$base$t{'name'}", %base_key),
-class => "list"}, esc_html($t{'name'})) .
"</td>\n" .
"<td class=\"link\">" .
$cgi->a({-href => href(action=>"blob", hash=>$t{'hash'},
file_name=>"$base$t{'name'}", %base_key)},
"blob");
if ($have_blame) {
print " | " .
$cgi->a({-href => href(action=>"blame", hash=>$t{'hash'},
file_name=>"$base$t{'name'}", %base_key)},
"blame");
}
print " | " .
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
hash=>$t{'hash'}, file_name=>"$base$t{'name'}")},
"history") .
" | " .
$cgi->a({-href => href(action=>"blob_plain",
hash=>$t{'hash'}, file_name=>"$base$t{'name'}")},
"raw") .
"</td>\n";
} elsif ($t{'type'} eq "tree") {
print "<td class=\"list\">" .
$cgi->a({-href => href(action=>"tree", hash=>$t{'hash'},
file_name=>"$base$t{'name'}", %base_key)},
esc_html($t{'name'})) .
"</td>\n" .
"<td class=\"link\">" .
$cgi->a({-href => href(action=>"tree", hash=>$t{'hash'},
file_name=>"$base$t{'name'}", %base_key)},
"tree") .
" | " .
$cgi->a({-href => href(action=>"history", hash_base=>$hash_base,
file_name=>"$base$t{'name'}")},
"history") .
"</td>\n";
}
git_print_tree_entry(\%t, $base, $hash_base, $have_blame);

print "</tr>\n";
}
print "</table>\n" .
Expand Down

0 comments on commit fa70200

Please sign in to comment.