diff options
author | Jakub Narebski <jnareb@gmail.com> | 2006-08-28 14:48:14 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-28 16:21:35 -0700 |
commit | b4657e7759fa5f3b1ef09d147c2fd0254f8fcb2d (patch) | |
tree | 3e76e5977244d00a176f31717770df598bc7ff1b | |
parent | gitweb: git_print_log: signoff line is non-empty line (diff) | |
download | tgif-b4657e7759fa5f3b1ef09d147c2fd0254f8fcb2d.tar.xz |
gitweb: Add diff tree, with links to patches, to commitdiff view
Added/uncommented git_difftree_body invocation in git_commitdiff.
Added anchors (via 'id' attribute) to patches in patchset.
git_difftree_body is modified to link to patch anchor when called from
git_commitdiff, instead of link to blobdiff.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-x | gitweb/gitweb.perl | 71 |
1 files changed, 49 insertions, 22 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 24c2fe2a1b..1b352cbb25 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1460,6 +1460,7 @@ sub git_difftree_body { print "<table class=\"diff_tree\">\n"; my $alternate = 0; + my $patchno = 0; foreach my $line (@{$difftree}) { my %diff = parse_difftree_raw_line($line); @@ -1500,8 +1501,14 @@ sub git_difftree_body { "<td class=\"link\">" . $cgi->a({-href => href(action=>"blob", hash=>$diff{'to_id'}, hash_base=>$hash, file_name=>$diff{'file'})}, - "blob") . - "</td>\n"; + "blob"); + if ($action == "commitdiff") { + # link to patch + $patchno++; + print " | " . + $cgi->a({-href => "#patch$patchno"}, "patch"); + } + print "</td>\n"; } elsif ($diff{'status'} eq "D") { # deleted my $mode_chng = "<span class=\"file_status deleted\">[deleted $from_file_type]</span>"; @@ -1515,8 +1522,14 @@ sub git_difftree_body { $cgi->a({-href => href(action=>"blob", hash=>$diff{'from_id'}, hash_base=>$parent, file_name=>$diff{'file'})}, "blob") . - " | " . - $cgi->a({-href => href(action=>"history", hash_base=>$parent, + " | "; + if ($action == "commitdiff") { + # link to patch + $patchno++; + print " | " . + $cgi->a({-href => "#patch$patchno"}, "patch"); + } + print $cgi->a({-href => href(action=>"history", hash_base=>$parent, file_name=>$diff{'file'})}, "history") . "</td>\n"; @@ -1552,16 +1565,23 @@ sub git_difftree_body { print "</td>\n" . "<td>$mode_chnge</td>\n" . "<td class=\"link\">" . - $cgi->a({-href => href(action=>"blob", hash=>$diff{'to_id'}, - hash_base=>$hash, file_name=>$diff{'file'})}, - "blob"); + $cgi->a({-href => href(action=>"blob", hash=>$diff{'to_id'}, + hash_base=>$hash, file_name=>$diff{'file'})}, + "blob"); if ($diff{'to_id'} ne $diff{'from_id'}) { # modified - print " | " . - $cgi->a({-href => href(action=>"blobdiff", - hash=>$diff{'to_id'}, hash_parent=>$diff{'from_id'}, - hash_base=>$hash, hash_parent_base=>$parent, - file_name=>$diff{'file'})}, - "diff"); + if ($action == "commitdiff") { + # link to patch + $patchno++; + print " | " . + $cgi->a({-href => "#patch$patchno"}, "patch"); + } else { + print " | " . + $cgi->a({-href => href(action=>"blobdiff", + hash=>$diff{'to_id'}, hash_parent=>$diff{'from_id'}, + hash_base=>$hash, hash_parent_base=>$parent, + file_name=>$diff{'file'})}, + "diff"); + } } print " | " . $cgi->a({-href => href(action=>"history", @@ -1591,12 +1611,19 @@ sub git_difftree_body { hash=>$diff{'to_id'}, file_name=>$diff{'to_file'})}, "blob"); if ($diff{'to_id'} ne $diff{'from_id'}) { - print " | " . - $cgi->a({-href => href(action=>"blobdiff", - hash=>$diff{'to_id'}, hash_parent=>$diff{'from_id'}, - hash_base=>$hash, hash_parent_base=>$parent, - file_name=>$diff{'to_file'}, file_parent=>$diff{'from_file'})}, - "diff"); + if ($action == "commitdiff") { + # link to patch + $patchno++; + print " | " . + $cgi->a({-href => "#patch$patchno"}, "patch"); + } else { + print " | " . + $cgi->a({-href => href(action=>"blobdiff", + hash=>$diff{'to_id'}, hash_parent=>$diff{'from_id'}, + hash_base=>$hash, hash_parent_base=>$parent, + file_name=>$diff{'to_file'}, file_parent=>$diff{'from_file'})}, + "diff"); + } } print "</td>\n"; @@ -1629,7 +1656,7 @@ sub git_patchset_body { # first patch in patchset $patch_found = 1; } - print "<div class=\"patch\">\n"; + print "<div class=\"patch\" id=\"patch". ($patch_idx+1) ."\">\n"; if (ref($difftree->[$patch_idx]) eq "HASH") { $diffinfo = $difftree->[$patch_idx]; @@ -2977,8 +3004,8 @@ TEXT # write patch if ($format eq 'html') { - #git_difftree_body(\@difftree, $hash, $hash_parent); - #print "<br/>\n"; + git_difftree_body(\@difftree, $hash, $hash_parent); + print "<br/>\n"; git_patchset_body($fd, \@difftree, $hash, $hash_parent); close $fd; |