我想爲一組指定的修訂版(或全部)搜索一個文件(最好是一組文件)的差異。我正在尋找可搜索文本的差異報告。我有這樣的:有沒有辦法爲一個文件的特定字符串搜索一組差異?
hg diff -r 0:47131 .\TheFile.cs | grep 'theSearch' -Context 50
好了,這工作得很好,但在決定多少上下文包括是一個問題,也是發現第一個和最後的修訂。我可以更好地自動執行此操作,但似乎它會有點工作。
我想知道是否有一個工具可以做得更好。也許一個差異報告網頁的hg服務器?
我想爲一組指定的修訂版(或全部)搜索一個文件(最好是一組文件)的差異。我正在尋找可搜索文本的差異報告。我有這樣的:有沒有辦法爲一個文件的特定字符串搜索一組差異?
hg diff -r 0:47131 .\TheFile.cs | grep 'theSearch' -Context 50
好了,這工作得很好,但在決定多少上下文包括是一個問題,也是發現第一個和最後的修訂。我可以更好地自動執行此操作,但似乎它會有點工作。
我想知道是否有一個工具可以做得更好。也許一個差異報告網頁的hg服務器?
您可以使用hg grep
搜索整個回購歷史記錄。
例如:
hg grep --all --include .\TheFile.cs 'theSearch'
會發現'theSearch'
所有實例回購的每一個版本。如果沒有--all
標誌,它會停在包含該字符串的第一個修訂版本。
我有一種感覺,hg grep
搜索整個文件的內容爲每個匹配的修訂。如果你想只搜索DIFF然而,嘗試這樣的事情:
hg log --template "{ifcontains('TODO', diff(), '{node} {desc}\n', '')}"
這將列出包含「TODO」在他們的差異修訂。注意這也會搜索刪除的行以及diff的上下文(+/- 3行),所以它並不完美。
您可以使用args進一步限制diff() - 請參閱hg help template
- 並使用revsets(-r ...
)。
這可能比使用您的hg diff | grep
方法更好,因爲它會逐個比較每個變更集,而不是將整個repo區分爲兩個變更集,並允許您使用revset過濾掉合併修訂版。
''{節點} {desc} \ n''會更有用IMO – arhak 2017-03-15 14:42:26
@arhak謝謝,編輯。 – 2017-03-29 16:26:19