From: Jakub Narebski Date: Thu, 05 Apr 2012 23:26:37 GMT Subject: Re: [PATCH v3 5/8] gitweb: Use print_diff_chunk() for both side-by-side and inline diffs Message-ID: <201204060126.38337.jnareb@gmail.com> In-Reply-To: <1333569433-3245-6-git-send-email-michal.kiedrowicz@gmail.com> 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