]> git.ipfire.org Git - thirdparty/git.git/commit - diff.h
diff: define block by number of alphanumeric chars
authorJonathan Tan <jonathantanmy@google.com>
Wed, 16 Aug 2017 01:27:39 +0000 (18:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Aug 2017 18:44:00 +0000 (11:44 -0700)
commitf0b8fb6e591b50b72b921f2c4cf120ebd284f510
treeea681638a57ff4c00e3a9525fa85cfa99e7b0bde
parent09153277f8948d3ed8cb6712f135a9caeaa006f6
diff: define block by number of alphanumeric chars

The existing behavior of diff --color-moved=zebra does not define the
minimum size of a block at all, instead relying on a heuristic applied
later to filter out sets of adjacent moved lines that are shorter than 3
lines long. This can be confusing, because a block could thus be colored
as moved at the source but not at the destination (or vice versa),
depending on its neighbors.

Instead, teach diff that the minimum size of a block is 20 alphanumeric
characters, the same heuristic used by "git blame". This allows diff to
still exclude uninteresting lines appearing on their own (such as those
solely consisting of one or a few closing braces), as was the intention
of the adjacent-moved-line heuristic.

This requires a change in some tests in that some of their lines are no
longer considered to be part of a block, because they are too short.

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/diff-options.txt
diff.c
diff.h
t/t4015-diff-whitespace.sh