git word-diff-regex适用于多行更改?

时间:2015-08-21 12:56:52

标签: git

考虑一个这样的简单文件:

COMMITED:

foo;

编辑:

bar;

现在,当我运行git diff --word-diff-regex="[a-z]+"时,它会给我

[-foo-]{+bar+};

因此,它表明单词foo已被bar取代。请注意,分号未标记为已更改。没关系。

现在,如果我在文件中添加另一行:

bar;

qux;

以上不再适用:

$ git diff --word-diff-regex="[a-z]+"

预期输出:

[-foo-]{+bar+};

{+qux;+}

实际输出:

[-foo-]{+bar;+}

{+qux+};

请注意,第一行中的分号现在被视为单词的一部分。  docs

  

这些匹配之间的任何内容都被视为空格并被忽略(!)以便找到差异。

那为什么不忽略分号呢?那是一个错误吗?我可以使用更好的正则表达式来使其工作吗?

我实际上在实际中使用了更复杂的正则表达式,但问题是一样的。

修改

奇怪的是,当提交的文件包含一个额外的换行符时它会起作用:

foo;
 

0 个答案:

没有答案