threads / patch / 5813

patch, 2 partsgitweb: blame: All rows have title; print 8 SP when no leading commit-8

Subject: [PATCH 2/2] gitweb: blame: All rows have title; print 8 SP when no leading commit-8

## tl;dr

3 messages between Oct 5, 2006 and Oct 5, 2006. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

Luben Tuikov· Oct 5, 2006, 01:02 UTC · lore

Print eight spaces when no leading commit is being printed. I.e. on all rows of a commit-block, but the first. This fixes alignment in the destination buffer when blame data lines are cut and pasted.

Also, now all rows have title.
Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
---
 gitweb/gitweb.perl |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
Show changes to gitweb/gitweb.perl +5 −8
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 451bf5d..2949fa4 100644
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2510,15 +2510,12 @@ HTML
 			$print_c8 = 1;
 		}
 		print "<tr class=\"$rev_color[$current_color]\">";
-		print "<td class=\"sha1\"";
-		if ($print_c8 == 1) {
-			print " title=\"$author, $date\"";
-		}
-		print ">";
-		if ($print_c8 == 1) {
-			print $cgi->a({-href => href(action=>"commit", hash=>$full_rev, file_name=>$file_name)},
-				      esc_html($rev));
+		print "<td class=\"sha1\" title=\"$author, $date\">";
+		if ($print_c8 == 0) {
+			$rev = "        ";
 		}
+		print $cgi->a({-href => href(action=>"commit", hash=>$full_rev, file_name=>$file_name)},
+			      esc_html($rev));
 		print "</td>";
 		print "<td class=\"linenr\"><a id=\"l$lineno\" href=\"#l$lineno\" class=\"linenr\">" .
 		      esc_html($lineno) . "</a></td>";
-- 
1.4.2.3.g7d77
Junio C Hamano· Oct 5, 2006, 01:24 UTC · re: Luben Tuikov · lore

Re: [PATCH 2/2] gitweb: blame: All rows have title; print 8 SP when no leading commit-8

Luben Tuikov <ltuikov@yahoo.com> writes:
Show 6 quoted lines
> Print eight spaces when no leading commit is being printed.
> I.e. on all rows of a commit-block, but the first.  This fixes
> alignment in the destination buffer when blame data lines
> are cut and pasted.
>
> Also, now all rows have title.

Its visuals might be Ok (I haven't had chance to try it), but I am a bit worried about the output size bloat. What kind of bloat factor are we talking about with this patch?

 - compared to the ancient original, which used to have commit-8
   on all lines, title * N lines for a file that is N lines
   long.  A title ("$author, $date") is about say 30 bytes or so
   so for a file that is on average 25 bytes per line (this is
   from "wc *.c" in git.git repository ) we are now spewing out
   roughly twice the bytes back to the browser (25+8 vs 25+8+30)
 - compared to "only first in the block" version, assuming an
   average group size is 10 lines or so (this is a totally made
   up number) we are adding 72 extra bytes per 10 lines for
   commit-8 on top of the title bloat which would be 270 bytes
   per 10 lines.  Again assuming 25-byte per line average, that
   is 250+8+30 vs 250+80+300 per 10 lines.  Again, roughly
   twice.

I am not sure what the numbers of the chunked one I just reverted from "next" compared to the original. For the same group size assumption, it added 8 bytes for commit-8 and 30 bytes for title per the N lines, but we are assuming 10-line blocks, so 38 byte overhead per 10 lines, which is 250+80 vs 250+38, so it might have been actually slimmer than the original.

Luben Tuikov· Oct 5, 2006, 01:29 UTC · re: Junio C Hamano · lore

Re: [PATCH 2/2] gitweb: blame: All rows have title; print 8 SP when no leading commit-8

--- Junio C Hamano <junkio@cox.net> wrote:
Show 26 quoted lines
> Its visuals might be Ok (I haven't had chance to try it), but I
> am a bit worried about the output size bloat.  What kind of
> bloat factor are we talking about with this patch?
> 
>  - compared to the ancient original, which used to have commit-8
>    on all lines, title * N lines for a file that is N lines
>    long.  A title ("$author, $date") is about say 30 bytes or so
>    so for a file that is on average 25 bytes per line (this is
>    from "wc *.c" in git.git repository ) we are now spewing out
>    roughly twice the bytes back to the browser (25+8 vs 25+8+30)
> 
>  - compared to "only first in the block" version, assuming an
>    average group size is 10 lines or so (this is a totally made
>    up number) we are adding 72 extra bytes per 10 lines for
>    commit-8 on top of the title bloat which would be 270 bytes
>    per 10 lines.  Again assuming 25-byte per line average, that
>    is 250+8+30 vs 250+80+300 per 10 lines.  Again, roughly
>    twice.
> 
> I am not sure what the numbers of the chunked one I just
> reverted from "next" compared to the original.  For the same
> group size assumption, it added 8 bytes for commit-8 and 30
> bytes for title per the N lines, but we are assuming 10-line
> blocks, so 38 byte overhead per 10 lines, which is 250+80 vs
> 250+38, so it might have been actually slimmer than the
> original.

Yes, I agree with you. That patch adds bloat. I agree with you, we can print the "title=" only for the leading commit-8, as we currently do, and dispense with 8 SP. In effect this patch 2/2 can be dropped.

Thanks,
   Luben

← back to recent threads