彷徨えるフジワラ

年がら年中さまよってます

TortoiseHg 利用者は revset 指定を積極的に活用すべき

まぁ、僕自身が去年の年末まで、revset は殆ど使っていなかったので、あまり偉そうなことは言えた身分ではないのだけれど(笑)。

TortoiseHg で『リビジョンセットやブランチで履歴をフィルター』ボタンを押すと、条件入力欄(『### revision set query ###』)が表示される。『リビジョンセットやブランチで履歴をフィルター』ボタンも『検索』ボタンも、共に虫眼鏡をモチーフに使用しているので、間違わないように!

この入力欄に様々な条件を revset 記述で入力して、虫眼鏡アイコンクリックで検索を適用すると、一覧表示対象の履歴が順次絞り込まれていく。例えば、上記の初期状態に対して、マージ対象リビジョンを除外する "not merge()" を入力すると:

もうちょっと複雑な、例えば『default ブランチにおける修正で、2.1 版に取り込まれた 2.0 版以降のもの』を抽出するような場合でも:

  • default ブランチ: "branch('default')"
  • 2.1 版に取り込まれた: "::tag('2.1')"
  • 2.0 版以降のもの: "tag('2.0')::"

先の『マージ対象リビジョン』に対する上記の論理積("and" 結合)になるわけで、これらを一度に入力しなくても、条件の断片を順次入力することで、データウェアハウスのディメンジョンブラウザよろしく、対象リビジョンを徐々に絞り込んでいくことができる。

続きを読む