We paint whitespace breakages in new (i.e. added or updated) lines
when showing the "git diff" output to help people avoid introducing
them with their changes.  The basic premise is that people would
want to avoid touching existing lines only to fix whitespace errors
in a patch that does other changes of substance, and that is why we
traditionally did not paint whitespace breakages in existing
(i.e. deleted or context) lines.

However, some people would want to keep existing breakages when they
are doing other changes of substance; "new" lines in such a patch
would show existing whitespace breakages painted, and it is not
apparent if the breakages were inherited from the original or newly
introduced.

Christian Brabandt had an interesting idea to help users in this
situation; why not give them a mode to paint whitespace breakages
in "old" (i.e. deleted or was replaced) lines, too?

http://thread.gmane.org/gmane.comp.version-control.git/269912/focus=269956

This series builds on that idea but with a different implementation
(Christian's original painted trailing whitespaces only).

The first three patches are preliminary cleanups.  The last one is
the interesting bit.

Having done this series, I am starting to suspect that painting ws
breakages only in deleted lines may not be such a useful thing to
do.  In order to decide if fixing ws breakages "while at it" is more
appropriate, you would need to know if such breakages are prevalent
in the original.  After all, the line you are updating might be one
of only few lines that the original had breakages, in which case you
may want to go back to your editor and fix them all while you are at
it, or fix only these few ws breakages as a preliminary step.  In
order to help users do that, the new option may be better not to
limit itself to "deleted" lines, but "context and deleted",
i.e. "preimage" lines.

Junio C Hamano (4):
  t4015: modernise style
  t4015: separate common setup and per-test expectation
  diff.c: add emit_del_line() and update callers of emit_line_0()
  diff.c: --ws-check-deleted option

 Documentation/diff-options.txt |   7 +
 diff.c                         |  58 +++--
 diff.h                         |   1 +
 t/t4015-diff-whitespace.sh     | 474 ++++++++++++++++++++---------------------
 4 files changed, 290 insertions(+), 250 deletions(-)

-- 
2.4.1-511-gc1146d5

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to