Re: [PATCH] diff: add --ignore-blank-lines option
From: Antoine Pelisse <hidden>
Date: 2016-06-15 22:57:27
On Sun, May 26, 2013 at 10:35 PM, Johannes Sixt [off-list ref] wrote:
Am 26.05.2013 19:58, schrieb Antoine Pelisse:quoted
The goal of the patch is to introduce the GNU diff -B/--ignore-blank-lines as closely as possible. The short option is not available because it's already used for "break-rewrites". When this option is used, git-diff will not create hunks that simply adds or removes empty lines, but will still show empty lines addition/suppression if they are close enough to "valuable" changes.So when an addition or removal of a blank line appears in a hunk that also has non-blank-line changes, the addition or removal is not treated specially?
Exactly.
How is a blank line defined? What happens if a line that has only whitespace is added or removed?
xdl_blankline() is the best description of what I considered a blank line. If no --ignore-space-* option is given, it's a line that starts and ends with '\n'. If any --ignore-space-* option is given, it's a line that has any number of isspace(3)-defined characters, followed by '\n'.
I'm thinking of diffs of files with CRLF
Good you did, because I didn't ;-)
line breaks, where the CR would count as whitespace in the line, I think.
With the current implementation, an empty line with CRLF will not show as a blank line if no space option is given. As CR is a space according to isspace(3), the line will be removed with any space option.
quoted
+--ignore-blank-lines:: + Ignore changes whose lines are all blank.I think this is too terse and does not convey what the option really does.
That's the description from GNU diff man page. But indeed it could be more precise.
quoted
+test_expect_success 'ignore-blank-lines: only new lines' ' + seq 5 >x &&Please use test_seq instead of seq in all new tests.
Will fix.
-- Hannes