[PATCHv6 00/10] Reroll of sb/diff-color-move-more
- From
Stefan Beller <sbeller@google.com>
- Date
- Jul 18, 2018, 19:31 UTC
- Message-ID
- <20180718193156.47365-1-sbeller@google.com>
v6: * fixed issues hinted at by Andrei, thanks! (range-diff below) * incorporates the new config option, sent separately previously.
v5: This is a resend of sb/diff-color-move-more https://public-inbox.org/git/20180629001958.85143-1-sbeller@google.com/ 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 (10):
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
diff.c: offer config option to control ws handling in move detectionDocumentation/config.txt | 5 + Documentation/diff-options.txt | 33 ++++- diff.c | 262 +++++++++++++++++++++++++++++---- diff.h | 9 +- t/t4015-diff-whitespace.sh | 243 +++++++++++++++++++++++++----- xdiff/xdiff.h | 8 - xdiff/xdiffi.c | 17 --- 7 files changed, 489 insertions(+), 88 deletions(-)
1: a512cd40cae ! 1: aabbc4e8aff diff.c: add white space mode to move detection that allows indent changes
@@ -27,8 +27,8 @@
modes in the move detection.
This patch brings some challenges, related to the detection of blocks.
- We need a white net the catch the possible moved lines, but then need to
- narrow down to check if the blocks are still in tact. Consider this
+ We need a wide net to catch the possible moved lines, but then need to
+ narrow down to check if the blocks are still intact. Consider this
example (ignoring block sizes):
- A
@@ -254,7 +254,7 @@
+ }
+ }
+
-+ for (i = 0; i <pmb_nr; i++) {
++ for (i = 0; i < pmb_nr; i++) {
+ if (got_match[i]) {
+ /* Carry the white space delta forward */
+ pmb[i]->next_line->wsd = pmb[i]->wsd;
-: ----------- > 2: f80fbe78d9b diff.c: offer config option to control ws handling in move detection