【问题标题】:git diff --word-diff with oneline filesgit diff --word-diff 与单行文件
【发布时间】:2012-02-07 18:43:52
【问题描述】:

我在使用 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

【问题讨论】:

  • AFAIK --word-diff 是行区分后的后处理步骤(它基本上区分“添加”和“删除”行)。看起来这是 Git 中的一个错误,也许你可以向 Git 邮件列表发送错误报告
  • 刚刚给他们发了一封信。看起来像一个错误。

标签: git diff word-diff


【解决方案1】:

我写信给 GIT 团队,他们回答说这确实是一个错误。 他们还向我发送了针对该案例的补丁。 看起来它将在 1.7.9 中修复。

【讨论】:

    猜你喜欢
    • 2011-12-04
    • 1970-01-01
    • 2014-10-07
    • 2018-08-10
    • 2020-02-03
    • 2011-11-24
    • 2011-12-02
    • 2014-11-25
    • 1970-01-01
    相关资源
    最近更新 更多