[BUG] diff --word-diff inconsistently places removed words
From: Lucian Poston <hidden>
Date: 2016-06-15 23:07:04
In the output generated by diff --word-diff, if the first word of a line was removed, it may appear at the end of the previous line. For example, compare the following two diffs on the same files, the first diff without --word-diff and the second with it. $ git diff
diff --git a/smallest-test b/smallest-test
index bc5f07a..d9116b1 100644
--- a/smallest-test
+++ b/smallest-test@@ -1,7 +1,7 @@ -111 aaa -111 aaa + aaa + aaa 111 aaa -111 aaa + aaa
$ git diff --word-diff=plain
diff --git a/smallest-test b/smallest-test
index bc5f07a..d9116b1 100644
--- a/smallest-test
+++ b/smallest-test@@ -1,7 +1,7 @@
[-111-] aaa[-111-] aaa 111 aaa [-111-] aaa I would expect every [-111-] to be on the line where it was removed. Instead it appears on the previous line in the case where the previous line also has a removal. Is this expected behavior? There is also a patch in this email thread that contains a test to further illustrate the issue. Running the test fails with the following diff between the expected result and actual result.
--- expect 2015-10-27 01:08:05.415252713 +0000
+++ output.decrypted 2015-10-27 01:08:05.418252766 +0000@@ -6,5 +6,5 @@ 11aa<RESET> <RED>11<RESET>aa -<RED>11<RESET>aa -<RED>11<RESET>aa +<RED>11<RESET>aa<RED>11<RESET> +aa
Lucian Poston (1): t4034: Test parsing words following newline t/t4034-diff-words.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) -- 2.4.10