2012-06-12 55 views
15

我想在特定分支(即「ABC-123」)中的特定文件(即「index.php」)中搜索特定短語(即「comma_delimited」)。原因是文本不在文件中,我想查看它在哪個提交中被取出,而不在該分支上查看此文件的每個修訂版本。如何使用tortoisehg的搜索工具?

有沒有辦法在tortoisehg做到這一點?我看到有一個搜索按鈕,它提供了一個可以輸入模式的搜索面板,但我不知道如何使用它(並且不知道如何編寫模式),並且在搜索了一段時間之後,發現沒有用處信息。

感謝

回答

11

有兩個搜索按鈕 - 一個用於搜索庫,另一個是過濾修訂圖形。也許你錯了嗎?

如果使用菜單選擇查看/搜索,則會選擇所需的搜索視圖。

它應該表現出你的版本圖下方的大型面板採用了許多控件讓我們填寫。

  • 輸入「comma_delimited」到第一個編輯控件(在同一行搜索和停止按鈕在右邊)
  • 選擇編輯控件下方的「All History」單選按鈕。
  • 輸入**index.php到標記編輯控制「包含」(或完整路徑index.php如果你有一個以上的,並希望將搜索範圍限制到特定的文件)
  • 按搜索按鈕

窗口底部的列表現在應該顯示包含該短語的修訂的詳細信息。它會顯示添加它時(帶有前綴「+」),它被移除時(帶有前綴「 - 」)

下面是一個例子搜索窗口: Example search window

+0

我的倉庫有許多分支非常大的歷史,我不想要搜索的index.php的每一個版本,只是所做的更改這個分支。那可能嗎? –

+0

似乎沒有從UI中選擇這個選項。只查看一個文件而不是整個存儲庫會加快速度,所以也許就足夠了。在命令行中,您可以將搜索範圍限制爲一系列修訂或單個分支:'hg grep --all -I「** index.php」-r「分支(分支名稱)」comma_delimited「,但似乎沒有在tortoisehg的搜索視圖中工作。 –

+0

完美,謝謝 –

1

的TortoiseHg搜索欄支持revsets 。它看起來像是grep(regex)函數,但它看起來只是關鍵字函數的正則表達式變體,它只搜索「提交消息,用戶名和已更改文件的名稱」。遊民。它看起來像你唯一的選擇就是使用Mercurial's grep command

> hg grep -r ABC-123 'comma_delimited' index.php 
+0

我檢出了您發佈的鏈接... grep將「搜索提交消息,用戶名和字符串已更改文件的名稱」。但不是文件中的文本... –

+0

@estherh謝謝。我糾正了我的答案。 –