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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to