diff options
author | Jakub Narebski <jnareb@gmail.com> | 2006-08-25 21:04:13 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-08-25 19:41:09 -0700 |
commit | e4e4f825455f2903e4d015e51c09ec0527a0be86 (patch) | |
tree | 10c012413187dcdc111fe703346015432fe42ce7 | |
parent | fe87585e53860f1c89a088e91c08dd89b6702a74 (diff) | |
download | git-e4e4f825455f2903e4d015e51c09ec0527a0be86.tar.gz git-e4e4f825455f2903e4d015e51c09ec0527a0be86.tar.xz |
gitweb: Parse two-line from-file/to-file diff header in git_patchset_body
Parse two-line from-file/to-file unified diff header in
git_patchset_body directly, instead of leaving pretty-printing to
format_diff_line function. Hashes as from-file/to-file are replaced
by proper from-file and to-file names (from $diffinfo); in the future
we can put hyperlinks there. This makes possible to do blobdiff with
only blobs hashes.
The lines in two-line unified diff header have now class "from_file"
and "to_file"; the style is chosen to match previous output (classes
"rem" and "add" because of '-' and '+' as first character of patch
line).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | gitweb/gitweb.css | 2 | ||||
-rwxr-xr-x | gitweb/gitweb.perl | 18 |
2 files changed, 19 insertions, 1 deletions
diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index 5eaa24fd2..0912361ac 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -273,10 +273,12 @@ td.mode { font-family: monospace; } +div.diff.to_file, div.diff.add { color: #008800; } +div.diff.from_file, div.diff.rem { color: #cc0000; } diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 56a47ab63..b2159bb82 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1706,8 +1706,24 @@ sub git_patchset_body { if ($in_header && $patch_line =~ m/^---/) { - #print "</div>\n" + #print "</div>\n"; # class="diff extended_header" $in_header = 0; + + my $file = $diffinfo->{'from_file'}; + $file ||= $diffinfo->{'file'}; + $patch_line =~ s|a/[0-9a-fA-F]{40}|a/$file|g; + print "<div class=\"diff from_file\">" . esc_html($patch_line) . "</div>\n"; + + $patch_line = <$fd>; + chomp $patch_line; + + #$patch_line =~ m/^+++/; + $file = $diffinfo->{'to_file'}; + $file ||= $diffinfo->{'file'}; + $patch_line =~ s|b/[0-9a-fA-F]{40}|b/$file|g; + print "<div class=\"diff to_file\">" . esc_html($patch_line) . "</div>\n"; + + next LINE; } next LINE if $in_header; |