Gitメモ : 「GRV(Git Repository Viewer)」ターミナルベースのリポジトリビューア
GRV(Git Repository Viewer)
ターミナルで使えるGitのリポジトリビューアとしてはTigを使っているが、Golangで書かれたGRVというツールがあったので試してみる。
GRVの特徴としては下記項目が挙げられている。
- コミットログやブランチ、タグをクエリでフィルタ可能
- 変更は自動で反映
- 画面はタブとビューで構成
- Vimライクのキーバインドでカスタマイズも可能
- カラーテーマがカスタマイズ可能
インストール
Releasesにバイナリがあるのでダウンロードして実行権限を付けるのが簡単。
READMEにはビルド方法も書いてある。
$ wget -O grv https://github.com/rgburke/grv/releases/download/v0.1.1/grv_v0.1.1_linux64 $ chmod +x ./grv
ヘルプ情報
$ ./grv --version GRV - Git Repository Viewer v0.1.1-0-g5d8a501 (commit: 5d8a501, compiled: 2018-02-03 09:50:05 GMT) $ ./grv --help Usage of ./grv: -logFile string Log file path (default "grv.log") -logLevel string Logging level [NONE|PANIC|FATAL|ERROR|WARN|INFO|DEBUG] (default "NONE") -repoFilePath string Repository file path (default ".") -version Print version
使い方
--repoFilePath
でリポジトリのパスを指定すればよいが、デフォルトは.
なのでリポジトリのディレクトリに移動してgrv
を実行すればよい。
試しにGRVのリポジトリで実行してみる。
$ git clone https://github.com/rgburke/grv $ cd grv $ grv
画面構成
GRVは2つのタブで画面が構成されている。タブ(左上に表示)はgt
, gT
で移動でき、タブ内のビューはTab
, Shift-Tab
で移動できる。
- History View : ヒストリービュー
- Ref View : ブランチとタグを表示
- Commit View : 選択したブランチ、タグのコミットを表示
- Diff View : 選択したコミットの差分を表示
- Status View : ステータスビュー
- Git Status View : ステータスを表示
- Diff View : 選択したファイルの差分を表示
キーバインド
デフォルトでVimライクなキーバインドになっているのでVimを使っている人なら迷わず使えるはず。なお、よく使うキーバインドは画面下部に表示されている。
h/j/k/l
,gg
,G
で移動/
,?
で検索(n
,N
でマッチした箇所の移動)gt
,gT
でタブ移動Tab
,Shift-Tab
でビュー移動f
で現在ビューをフルスクリーン(トグル):
でコマンド入力(:q
で終了)<Enter>
でアイテム選択<C-w>t
でビューのレイアウト変更q
でビューを閉じる(ビューがない場合はタブを閉じる)
フィルタ機能
Ref ViewとCommit Viewではフィルタ機能が使えるようになっている。
Ctrl-q
を押すとクエリを入力するモードになるので以下のような形式でクエリを入力する。
field CMP value
CMPで指定できるオペレータは下記。
=, !=, >, >=, <, <=, GLOB, REGEXP
例えば、コミットメッセージがMerge
で始まるものをフィルタしたい場合は下図のように入力。
条件にはAND
, OR
, NOT
も指定できるので、
authordate >= "2017-09-01" AND authordate < "2017-10-01" AND (authorname = "John Smith" OR authorname = "Jane Roe") AND parentcount < 2
のような条件も指定できる。
フィルタされた結果についてはCtrl-r
で解除できる。
Commit Viewで使用可能なフィールドは下記。
Field | Type ---------------+------- authordate | date authoremail | string authorname | string committerdate | date committeremail | string committername | string id | string parentcount | number summary | string
Ref Viewで使用可能なフィールドは下記。
Field | Type ------+------- name | string
カラーテーマ
現状では3つのカラーテーマを選択できる。デフォルトはsolarized
だが、:
でコマンド入力モードにして下記コマンドを入力するとカラーテーマを変更できる。カラーテーマのカスタマイズについてはこのページを参照。
:set theme cold
:set theme classic
設定ファイル
下記パスのどちらかにgrvrc
ファイルを作成すると設定が読み込まれる。
$XDG_CONFIG_HOME/grv/grvrc $HOME/.config/grv/grvrc
例えば、set theme cold
と記述した$HOME/.config/grv/grvrc
ファイルを作成すればカラーテーマが変更される。
その他の設定については、
set tabwidth 4
でタブ幅を変更したり、
map RefView a gg
のような形式でキーバインドを変更できる。
タブ、ビューの追加
下記コマンドで新規タブが追加できる。
addtab tabname
タブ名をmycustomtab
にする場合は以下のようになる。
addtab mycustomtab
新規ビューを追加するコマンドは下記。
addview view viewargs...
使い方の例は以下の通り。
addview CommitView origin/master addview DiffView 4882ca9044661b49a26ae03ceb1be3a70d00c6a2 addview GitStatusView addview RefView
上記タブ、ビュー追加のコマンドについては設定ファイルにも記述できる。