フェンリル

Developer's Blog

リポジトリから欲しい情報をさっと取り出せるように TortoiseHG のリビジョン検索機能を使ってみる

こんにちは、Sleipnir 開発担当の松本です。

今回は、TortoiseHG のリビジョン検索の機能を説明します。これは適当に使ってもそれなりに便利になりますが、きちんと使えば欲しいリビジョンを思い通りに絞り込めるようになります。

まずはリビジョン検索を適当に使ってみましょう。TortoiseHG の Workbench を起動し、メニューの Filter Toolbar をクリックしてください。

ツールバーの下にフィルターツールバーが出てきますので、後は適当な単語を入れるだけです。次の例では自分のコミッター名の y.matsumoto を入れてみています。

絞り込んだ結果のみ表示するので、リビジョングラフがばらばらになってよくわからん! というときは filter のチェックを外せば、通常の表示に絞り込んだリビジョンがハイライトされたような表示になります。絞り込み自体を終了させたいなら左の×ボタンをクリックすればOKです。

では、リビジョン検索をきちんと使ってみましょう。filter チェックボックスの 2 つ左の 「…」 ボタンをクリックすると、次のようなウィンドウが表示されます。実はリビジョン検索ではクエリ用の簡易言語が使えるのです。

その簡易検索言語の書式に従い、ウィンドウ下部にあるテキストボックスに文を入力して Enter を押してください。上の例では「タグが 300rc2 以降のリビジョン (x:y で x から y までのリビジョンを指定できる。ここでは y を省略しており、そのときは tip を指定したことになる)」かつ「ユーザが y.matsumoto」かつ「PNG 画像を追加した」というリビジョンのみに絞り込むよう指定しています。

その結果は次のようになりました。つまり、「最近差し替えた PNG 画像ってどんなものがあったっけ?」という状況でさっと欲しい情報を取り出せたわけです。

なお、リビジョン検索は Mercurial 自体の機能であるので hg からも使うことができます。hg と Unix のコマンドラインツールと組み合わせると、リビジョン検索の結果をより柔軟に表示することができます。次の例では先ほど得られたリビジョンセットから追加されたファイルのみをソートさせて表示しています。

> hg log -r 'tag("300rc2"): and user("y.matsumoto") and adds("**/*.png")' --template "{file_adds}\n" | tr ' ' '\n' | sort | uniq
common/resource_v3/widget/BookmarkPanel/Unclassified.png
common/resource_v3/widget/CommandBar/undotab.png
common/resource_v3/widget/Panel/AddLabel.png
common/resource_v3/widget/Panel/Archive.png
common/resource_v3/widget/Panel/FilterH.png
common/resource_v3/widget/Panel/FilterN.png
common/resource_v3/widget/Panel/OpenAllH.png
common/resource_v3/widget/Panel/OpenAllN.png
common/resource_v3/widget/Panel/OpenFavoriteLabelH.png
common/resource_v3/widget/Panel/OpenFavoriteLabelN.png
common/resource_v3/widget/Panel/settingH.png
common/resource_v3/widget/Panel/settingN.png
common/resource_v3/widget/TabBar/TabLoadingAnim.png
common/resource_v3/widget/TabBar/loading.png

リビジョン検索言語には他にも便利な関数が沢山ありますので、マニュアルにざっと目を通しておくことをお勧めします。

Facebook コメント

コメント

名前(必須)

メールアドレス(必須)

URL

スタイル用のタグが使えます

このコメント欄でのご質問、ご要望には、開発チームから回答できない場合があります。ご質問、ご要望は「User Community」内のフォーラムまでお寄せください。