`git diff --stat` 可以遵循 `diff.<driver>.textconv` 吗?

3

我正在使用一个 textconv 过滤器。当运行 git diff 查看实际差异时,它非常有效,但每当我使用 --stat--numstat 时,数字反映的是未转换的文件(缺少换行符)而不是转换后的文件,因此输出并不特别有用(看起来可能有点傻):

git diff --patch-with-stat
 foo | 2+-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/foo b/foo
index 061fe3c..192c371 100644
--- a/foo
+++ b/foo
@@ -1,2 +1,11 @@
 bar
 baz
+abc
+def
+ghi
+jkl
+mno
+pqr
+stu
+vwz
+yz

明显地,补丁中插入了不止一行代码...
有没有什么方法可以告诉git也使用这个转换器呢?还是说我遗漏了什么?
1个回答

0

我想我理解了你的问题...

当我们使用带有--stat--numstat选项的git diff命令时,只会显示文件中添加和删除的行数。由于textconv过滤器转换文件并添加新行,因此--stat--numstat报告的行数与转换后文件中的实际行数不对应。

您可以尝试使用--no-renames选项来解决这个问题,它将禁用重命名检测。这确保补丁输出中的文件路径与工作目录中的文件路径匹配,以便正确应用textconv过滤器。

例如,您可以尝试运行以下命令:

git diff --no-renames --patch-with-stat

通过这个,将会显示出正确的添加和删除行数,基于转换后的文件。


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