使用git diff --word-diff命令比较单行文件的不同。

7

我在使用 git diff --word-diff 时遇到了困难。问题出在 diff 对没有换行符(即只有一行的文件)的文件进行逐行分析,而我希望能够逐词分析。

以下是当我比较没有换行符的文件时发生的情况:

git diff -a --word-diff=plain file1 file2
diff --git a/file1 b/file2
index 3526254..0515a63 100644
--- a/file1
+++ b/file2
@@ -1 +1 @@
[- a a a a a a a a a a-]
 No newline at end of file
 {+a a a a a ab a a a a+}

如果我在文件末尾添加换行符,一切都会按预期工作:

git diff -a --word-diff=plain file1 file2
diff --git a/file1 b/file2
index 1756d83..1ec45b9 100644
--- a/file1
+++ b/file2
@@ -1,2 +1,2 @@
 a a a a a [-a -]{+ab +}a a a a

1
据我所知,--word-diff 是在行差异比较之后的后处理步骤(它基本上是将“添加”的行与“删除”的行进行比较)。看起来这是 Git 中的一个错误,也许你可以向 Git 邮件列表发送一个错误报告。 - knittl
刚刚给他们发了一封信。看起来像是一个 bug。 - user1143094
1个回答

7

我给GIT团队写了信,他们回复说确实存在一个bug。同时,他们给我发送了一个修复程序。看起来在1.7.9版本中将会修复这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接