This is a resend of sb/diff-color-move-more https://public-inbox.org/git/20180629001958.85143-1-sbeller@xxxxxxxxxx/ that fixes an errornous squashing within the series; the end result is the same. range diff is below. (As the latest cooking email said this series is going to land in next soon, I hope this is not too late of a resend; otherwise just ignore it as the end result is the same) Thanks, Stefan Stefan Beller (9): xdiff/xdiff.h: remove unused flags xdiff/xdiffi.c: remove unneeded function declarations t4015: avoid git as a pipe input diff.c: do not pass diff options as keydata to hashmap diff.c: adjust hash function signature to match hashmap expectation diff.c: add a blocks mode for moved code detection diff.c: decouple white space treatment from move detection algorithm diff.c: factor advance_or_nullify out of mark_color_as_moved diff.c: add white space mode to move detection that allows indent changes Documentation/diff-options.txt | 30 +++- diff.c | 253 +++++++++++++++++++++++++++++---- diff.h | 9 +- t/t4015-diff-whitespace.sh | 243 ++++++++++++++++++++++++++----- xdiff/xdiff.h | 8 -- xdiff/xdiffi.c | 17 --- 6 files changed, 472 insertions(+), 88 deletions(-) -- 2.18.0.203.gfac676dfb9-goog 1: 7199e9b5608 ! 1: 7d58ad461cb diff.c: decouple white space treatment from move detection algorithm @@ -207,9 +207,8 @@ + EOF + + # Make sure we get a different diff using -w -+ git diff --color --color-moved -w | -+ grep -v "index" | -+ test_decode_color >actual && ++ git diff --color --color-moved -w >actual.raw && ++ grep -v "index" actual.raw | test_decode_color >actual && + q_to_tab <<-\EOF >expected && + <BOLD>diff --git a/text.txt b/text.txt<RESET> + <BOLD>--- a/text.txt<RESET> @@ -224,9 +223,8 @@ + + # And now ignoring white space only in the move detection + git diff --color --color-moved \ -+ --color-moved-ws=ignore-all-space,ignore-space-change,ignore-space-at-eol | -+ grep -v "index" | -+ test_decode_color >actual && ++ --color-moved-ws=ignore-all-space,ignore-space-change,ignore-space-at-eol >actual.raw && ++ grep -v "index" actual.raw | test_decode_color >actual && + q_to_tab <<-\EOF >expected && + <BOLD>diff --git a/text.txt b/text.txt<RESET> + <BOLD>--- a/text.txt<RESET> 2: 5626d523b70 = 2: f08353f2a02 diff.c: factor advance_or_nullify out of mark_color_as_moved 3: e2f1e573699 ! 3: 3fde7cf2194 diff.c: add white space mode to move detection that allows indent changes @@ -339,30 +339,6 @@ diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh --- a/t/t4015-diff-whitespace.sh +++ b/t/t4015-diff-whitespace.sh -@@ - EOF - - # Make sure we get a different diff using -w -- git diff --color --color-moved -w | -- grep -v "index" | -- test_decode_color >actual && -+ git diff --color --color-moved -w >actual.raw && -+ grep -v "index" actual.raw | test_decode_color >actual && - q_to_tab <<-\EOF >expected && - <BOLD>diff --git a/text.txt b/text.txt<RESET> - <BOLD>--- a/text.txt<RESET> -@@ - - # And now ignoring white space only in the move detection - git diff --color --color-moved \ -- --color-moved-ws=ignore-all-space,ignore-space-change,ignore-space-at-eol | -- grep -v "index" | -- test_decode_color >actual && -+ --color-moved-ws=ignore-all-space,ignore-space-change,ignore-space-at-eol >actual.raw && -+ grep -v "index" actual.raw | test_decode_color >actual && - q_to_tab <<-\EOF >expected && - <BOLD>diff --git a/text.txt b/text.txt<RESET> - <BOLD>--- a/text.txt<RESET> @@ test_cmp expected actual '