summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Narebski <jnareb@gmail.com>2006-08-25 19:05:07 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-08-26 02:41:12 (GMT)
commitef10ee877f6d4db4c9bc65d0e36b3670f0fe114e (patch)
tree143b95ba3833cdb3242300e9ab5e6160401cdf72
parente4e4f825455f2903e4d015e51c09ec0527a0be86 (diff)
downloadgit-ef10ee877f6d4db4c9bc65d0e36b3670f0fe114e.zip
git-ef10ee877f6d4db4c9bc65d0e36b3670f0fe114e.tar.gz
git-ef10ee877f6d4db4c9bc65d0e36b3670f0fe114e.tar.bz2
gitweb: Add invisible hyperlink to from-file/to-file diff header
Change replacing hashes as from-file/to-file with filenames from difftree to adding invisible (except underlining on hover/mouseover) hyperlink to from-file/to-file blob. /dev/null as from-file or to-file is not changed (is not hyperlinked). This makes two-file from-file/to-file unified diff header parsing in git_patchset_body more generic, and not only for legacy blobdiffs. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r--gitweb/gitweb.css10
-rwxr-xr-xgitweb/gitweb.perl14
2 files changed, 20 insertions, 4 deletions
diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css
index 0912361..afd9e8a 100644
--- a/gitweb/gitweb.css
+++ b/gitweb/gitweb.css
@@ -273,11 +273,21 @@ td.mode {
font-family: monospace;
}
+div.diff a.list {
+ text-decoration: none;
+}
+
+div.diff a.list:hover {
+ text-decoration: underline;
+}
+
+div.diff.to_file a.list,
div.diff.to_file,
div.diff.add {
color: #008800;
}
+div.diff.from_file a.list,
div.diff.from_file,
div.diff.rem {
color: #cc0000;
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index b2159bb..2995342 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -1711,8 +1711,11 @@ sub git_patchset_body {
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";
+ $file = $cgi->a({-href => href(action=>"blob", hash_base=>$hash_parent,
+ hash=>$diffinfo->{'from_id'}, file_name=>$file),
+ -class => "list"}, esc_html($file));
+ $patch_line =~ s|a/.*$|a/$file|g;
+ print "<div class=\"diff from_file\">$patch_line</div>\n";
$patch_line = <$fd>;
chomp $patch_line;
@@ -1720,8 +1723,11 @@ sub git_patchset_body {
#$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";
+ $file = $cgi->a({-href => href(action=>"blob", hash_base=>$hash,
+ hash=>$diffinfo->{'to_id'}, file_name=>$file),
+ -class => "list"}, esc_html($file));
+ $patch_line =~ s|b/.*|b/$file|g;
+ print "<div class=\"diff to_file\">$patch_line</div>\n";
next LINE;
}