]> git.ipfire.org Git - thirdparty/git.git/commit - diff.c
diff: retire "compaction" heuristics
authorJunio C Hamano <gitster@pobox.com>
Fri, 23 Dec 2016 20:32:22 +0000 (12:32 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 23 Dec 2016 20:32:22 +0000 (12:32 -0800)
commit3cde4e02ee891bff53bac7f6a7d977f50418a4b5
treebe578af45d9afe9d9987e40ab6659fde29f9dcec
parentbe5a750939c212bc0781ffa04fabcfd2b2bd744e
diff: retire "compaction" heuristics

When a patch inserts a block of lines, whose last lines are the
same as the existing lines that appear before the inserted block,
"git diff" can choose any place between these existing lines as the
boundary between the pre-context and the added lines (adjusting the
end of the inserted block as appropriate) to come up with variants
of the same patch, and some variants are easier to read than others.

We have been trying to improve the choice of this boundary, and Git
2.11 shipped with an experimental "compaction-heuristic".  Since
then another attempt to improve the logic further resulted in a new
"indent-heuristic" logic.  It is agreed that the latter gives better
result overall, and the former outlived its usefulness.

Retire "compaction", and keep "indent" as an experimental feature.
The latter hopefully will be turned on by default in a future
release, but that should be done as a separate step.

Suggested-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/diff-config.txt
Documentation/diff-heuristic-options.txt
builtin/blame.c
diff.c
git-add--interactive.perl
xdiff/xdiff.h
xdiff/xdiffi.c