CUIでも使えるMercurialのリポジトリブラウザ hgview の紹介 #mercurialjp

このエントリは Mercuiral Advent Calendar 2012 の8日目です。

CUIでも使えるMercurialリポジトリブラウザ hgview を紹介したいと思います。

hgview

hgviewはLinuxやMac、Cygwinで利用出来るGUICUI兼用のMercurialリポジトリブラウザです。今回はCUIツールとして使ってみます。

インストール

pipでインストール!とおもって試してみるとうまくインストール出来ません(最新版がPyPIに有るのに)。なのでリポジトリをクローンしてsetup.pyを使ってインストールします。

まずは依存ライブラリのインストール。

pip install urwid pygments
pip install pyinotify # 必要の応じてインストール

その後、本体のインストール。

hg clone http://hg.logilab.org/hgview
cd hgview
hg up hgview-version-1.7.0 # 現在の最新版
python setup.py install --no-doc # ドキュメントのビルドは大変なのでskip

これで hgview コマンドが利用出来ます

スクリーンショット

表示はこんな感じ。リビジョンは「o」、MQのパッチは「*」です。 f:id:troter:20121209003741p:plain

diffはこんな感じ f:id:troter:20121209003721p:plain

使い方

Emacs的なキーバインドとvi的なキーバインドがあります。僕はEmacs遣いなので、とりあえずEmacs的なキーバインド

キーバインド 動作
M-x コマンドキー
C-g Escape
C-v リフレッシュ
C-k ペインを閉じる
C-p グラフ、前の行
C-n グラフ、次の行
C-b ファイル、前の行
C-f ファイル、次の行
C-a ソース、前の行
C-e ソース、次の行
M-p グラフ、ページアップ
M-n グラフ、ページダウン
M-b ファイル、ページアップ
M-f ファイル、ページダウン
M-a ソース、ページアップ
M-e ソース、ページダウン

主なコマンド

コマンド 動作
h[elp] ヘルプを表示
g[oto] REVISION REVISIONに移動
r[efresh] リフレッシュ

たとえばつぎでヘルプが表示されます。

M-x help<Enter>

使ってみるとわかるのですが、キーリピートに難ががあります。こなれてない感もあるので、 是非みんなで叩いて改良していきましょう。