From: Stefan Beller Date: Fri, 15 Apr 2016 23:01:44 GMT Subject: [RFC PATCH, WAS: "weird diff output?" v3a 0/2] implement shortest line diff chunk heuristic Message-ID: <1460761306-18794-1-git-send-email-sbeller@google.com> This is a version based on Jacobs v2, with the same fixes as in his v3 (hopefully), changing the heuristic, such that CRLF confusion might be gone. TODO: * add some tests * think about whether we need a git attribute or not (I did some thinking, and if we do need to configure this at all, this is where I would put it) Later on we want to have git attributes I'd think. For now let's just keep the `git config diff.shortestlineheuristic true` config option for testing? Changes since Jacobs v2: * s/empty line/shortest line/g That new heuristic is a superset of the empty line heuristic as empty lines are shortest lines. This solves the "What is an empty line?" question (Think of CRLF vs LF) * fixed Jacobs rebase mistake (which is also fixed in Jacobs v3) Changes since my v1: * rename xdl_hash_and_recmatch to recs_match * remove counting empty lines in the first section of the looping Changes since Stefan's v1: * Added a patch to implement xdl_hash_and_recmatch as Junio suggested. * Fixed a segfault in Stefan's patch * Added XDL flag to configure the behavior * Used an int and counted empty lines via += instead of |= * Renamed starts_with_emptyline to is_emptyline * Added diff command line and config options Jacob Keller (1): xdiff: add recs_match helper function Stefan Beller (1): xdiff: implement empty line chunk heuristic Documentation/diff-config.txt | 6 ++++++ Documentation/diff-options.txt | 6 ++++++ diff.c | 11 +++++++++++ xdiff/xdiff.h | 2 ++ xdiff/xdiffi.c | 43 ++++++++++++++++++++++++++++++++++++++---- 5 files changed, 64 insertions(+), 4 deletions(-) -- 2.8.1.189.gd13d43c