我正在寫一個測試套件,運行要在一堆輸入文件中進行測試的工具。對於每個輸入文件,該工具正在創建相應的輸出文件(均爲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