2011-07-06 40 views
3

我在一個已經有很多「TODO」註釋的代碼庫中工作,在我推送我的更改集之前,我想確保我沒有在其中留下任何TODO註釋(而不是實際執行此操作,或將其添加到新功能數據庫並刪除註釋)。僅在特定的mercurial變更集中發生更改的文件中搜索「TODO」?

目前我只是在每個評論中使用「TODO:Wilka」,因此很容易搜索。但是,Mercurial有沒有一種方法,我只能在變更集合中已更改的文件中搜索「TODO」?理想情況下,它只會搜索實際發生變化的行 - 但即使只是文件也會很好。

回答

1

搜索一組特定的修訂版,你可以這樣做: :

hg grep -r 0:3 "\bTODO:" 
+0

恕我直言,這將顯示項目中的所有TODO,不僅是他介紹的那些? – bbaja42

+0

這是一個公平點 - 這將列出給定修訂中的所有「TODO:」實例。刪除'--all'將僅返回每個文件匹配的第一個匹配 –

+0

也我不認爲問題要求他介紹的問題(「我可以搜索」TODO「只在已經更改的文件集合中「) –

0

DIFF之間想通過管道輸送到grep的版本,只修改過的文件的文件可以用grep的

hg diff -r 100:105 | grep TODO 

編輯搜索正如在評論中提到的,這是假設安裝了grep(非Windows環境)
@thanks Tim,如果使用Windoes,請使用findstr而不是grep

+1

這裏假設grep可用 - 這不適用於(例如)一個標準的Windows機箱。 –

+2

在Windows上,您可以用'findstr'替換'grep'。在這種簡單的情況下,它的工作原理是一樣的。 –

0

自動化方式是通過Mercurial commit hooks。與checkfiles的擴展referred to by mercurial developers一樣,examples可能會有所幫助。

以我的經驗,提交鉤子是一個混雜的包,經常做你想要的東西,但是當你真的想提交一個TODO時會感到厭煩。 Shelve extension試圖解決這個問題,但治療可能比問題更糟。

我還沒有探討可能是漂亮的東西像hg com --but-ignore-my-TODO-hook的可能性。

+0

難道你不是說預推鉤? – bbaja42

相關問題