我正在写一个测试套件,运行要在一堆输入文件中进行测试的工具。对于每个输入文件,该工具正在创建相应的输出文件(均为XML格式)。输入和输出文件在Git仓库中签入。如何使用git diff -G?
输出文件包含编译工具的时间,所以输出文件在被测试工具重新创建后肯定会被修改。
如果输出已经改变(当我修改工具的源代码时),我想要检查节点OutputFingerprint
的内容是否已经改变(对相关部分内容的简单散列的输出文件)。
阅读手册git-diff
,我发现有一个-G
选项:
-G <正则表达式>
查找其添加或删除行给定的正则表达式<匹配>差异。
不幸的是,他们没有提供如何使用-G
选项的示例。
我首先想到的是简单地写
git diff -GOutputFingerprint
但这是错误的:
> git diff -GOutputFingerprint
error: invalid option: -GOutputFingerprint
下一个想法是把在斜线正则表达式,这也是不成功:
> git diff -G/OutputFingerprint/
error: invalid option: -GC:/Program Files/Git/OutputFingerprint/
此外,只需在-G
和之间加一个空格210不起作用:
> git diff -G OutputFingerprint
fatal: ambiguous argument 'OutputFingerprint': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
当我打电话git diff
没有任何参数,可以让我的修改:
- <OutputFingerprint>e45807ca76fc5bb78e9e928c6fb7eed6</OutputFingerprint>
+ <OutputFingerprint>d0846851bc9d52b37f7919def78660a2</OutputFingerprint>
另一种认为是使用git diff -S".*OutputFingerprint.*" --pickaxe-regex
,但这也是没有成功。
git --version
给我git version 1.7.3.1.msysgit.0
如果这是相关的。
当我询问git diff --help
时,所提供的手册显示了-G
选项。
那么,有谁能为我提供一个如何正确使用git diff -G
的例子吗?
尝试添加'G'和正则表达式之间的空间? – sarnold 2011-02-23 09:17:49
嘿,我的git 1.7.1没有'-G'选项 - 我想知道你的是否支持'-G'?您可能需要更新的版本来支持您想要做的事情。 – sarnold 2011-02-23 09:30:07
只是为了确认,是否有实际的变化来报告?如果没有未提交的更改,即使没有'-G',我也会得到“未知版本”的错误...只要确保在尝试过滤之前获得了_some_种类的差异即可。 – sarnold 2011-02-23 09:44:33