Subject: Re: [PATCH v3 5/8] gitweb: Use print_diff_chunk() for both side-by-side and inline diffs

From: Jakub Narebski <[email-masked]>
Date: Fri, 6 Apr 2012 01:26:37 +0200

Michał Kiedrowicz wrote:

> This renames print_sidebyside_diff_chunk() to print_diff_chunk() and
> makes use of it for both side-by-side and inline diffs.  Now diff lines
> are always accumulated before they are printed.  This opens the
> possibility to preprocess diff output before it's printed, which is
> needed for diff refinement highlightning (implemented in incoming
> patches).
> 
> If print_diff_chunk() was left as is, the new function
> print_inline_diff_lines() could reorder diff lines.  It first prints all
> context lines, then all removed lines and finally all added lines.  If
> the diff output consisted of mixed added and removed lines, gitweb would
> reorder these lines.  This is true for combined diff output, for
> example:
> 
> 	 - removed line for first parent
> 	 + added line for first parent
> 	  -removed line for second parent
> 	 ++added line for both parents
> 
> would be rendered as:
> 
> 	- removed line for first parent
> 	 -removed line for second parent
> 	+ added line for first parent
> 	++added line for both parents
> 
> To prevent gitweb from reordering lines, print_diff_chunk() calls
> print_diff_lines() as soon as it detects that both added and removed
> lines are present and there was a class change.
                                                 , and at the end of hunk.

I think it is worth adding the above to the commit message.

-- 
Jakub Narebski
Poland