MercurialのPager Extensionを設定して快適にコミットログを追いかける

Git使いであれば、diffやlogの差分はデフォルトでpagerが設定されており、コミットログを追いかけやすい設定になっていることはご存知だろう。 Mercurialでは、diffやlogの出力は、pager経由ではなくすべて出力される設定になっている。
このままだとlogを追いかけるのが難しくなり、開発サイクルが破綻してしまうので、Pager Extensionを設定して快適にコミットログを追いかけたりやdiffを確認できるようにしよう。

Pager Extensionは、Mercurialにバンドルされているので.hgrcに次の設定を加えるだけで有効化できる。

[extensions]
pager =
[pager]
pager = LESS='FSRX' less

さらにこの設定に加え、PIPEが壊れた時のエラーメッセージを抑制するために

[pager]
quiet = True

を追加しておこう。また、あるコマンドの出力をpager経由で表示してほしくない場合は、そのコマンドを無視できる。

[pager]
ignore = version, help, update

逆に、指定したコマンドを有効化したい場合はpager.attendに追加する。

[pager]
attend = annotate, cat, diff, export, glog, log, qdiff

ここで、気をつけることが、Alias Extensionでコマンドの短縮名を登録している場合で、そのコマンドの出力をpager経由で表示するには、その短縮名もpager.attendに追加しなければならない。
たとえば、diffをd、glogをgl、logをlにaliasを割り当てていたとすると、

[pager]
attend = annotate, cat, diff, d, export, glog, gl, log, l, qdiff

と記述する。