Git
tig

tig 1.3の新機能・修正点(になるであろう差分)を紹介してみる

More than 5 years have passed since last update.

jonas/tig は現在も活発に開発が継続しており、次のバージョンアップが待たれます。

2013年8月にリリースされたtig 1.2.1から現在までのmasterの差分における、

筆者が気になる新機能・修正点を紹介してみます。

※ masterブランチの差分を追っているのみのため tig 1.3 に確実に入る保証はありません。


外部コマンドをバインドする時の接頭辞 ! がオプション扱いに

User-defined commands no longer need to be prefixed with '!'

キーバインドで外部コマンドを設定する時は接頭辞に ! (フォアグラウンドで実行)もしくは @ (バックグランドで実行)が必須でした。次のような形です。やけに丁寧なtigの設定ガイド(キーバインド概論編) でもこの形で紹介しています。

bind main ^r !git pull --rebase

bind main V !?git revert %(commit)

今後は、もしフォアグラウンドで実行したいだけであれば!の接頭辞は不要になります。

bind main ^r git pull --rebase

bind main V ?git revert %(commit)


statusビューにおけるuntrackedなディレクトリ内のファイル表示制御オプションが追加

Add toggling for display of files in untracked directories

untrackedなディレクトリ内にあるファイルをstatusビューに表示するかどうかを制御できるオプションが追加されました。


window sizeに応じて自動でvertical-splitするオプションが追加

Add "auto" vertical-split

端末の画面サイズに応じてvertical-splitの有効・無効を自動で切り替えるオプションが追加されました。

set vertical-split = auto

筆者の環境(1920x1080 フルスクリーン)では自動で垂直分割になりました。


マウスのサポートが追加

Add mouse support · 7b50367 · jonas/tig

マウスによるログのスクロールや行の選択が可能になりました。

ただしデフォルトでは無効化されているので利用するには以下のオプションで有効化する必要があります。

set mouse = yes

デフォルトで無効化された理由は以下のコミットに記されています。

Actually disable mouse support · c907f96 · jonas/tig

テキスト選択が直感的でないことと、システムに入っているncurses(tigが内部で利用しているTUIライブラリ)がマウスイベントをサポートしているバージョンになっていなければならないためのようです。

筆者の手元の環境(Mac OS 10.9)では動作を確認できませんでした。


stageビューにて差分のchunkを分割することが可能に

stageビューにおいて差分のchunkを分割する機能が追加されました。

Add support for splitting chunks in the stage view

このchunkというのはgitのhunkに相当しており、 git add -psを選んでhunkを分割した際の見栄えと同じになります。

(ちなみに git add -p については 横着で神経質な私とあなたに贈るgit add -p が詳しいです)

あくまでstageビュー上の差分の見栄えを制御するだけなので、分割したchunkを個別にgit addできるわけではないようです。

(従来からの機能で1行ごとのaddは可能です。デフォルトでは1で実行できます)


blameビューを再帰的に辿る際に戻る機能が追加

Implement navigating back to previous view state in the blame view

blameビューは再帰的に過去のコミットに辿ることができます(スクリーンキャスト )。

しかし、git blameを再帰的に行うでも指摘されている通り、以下の機能上の不便がありました。


ちなみに一度、,を押してしまうと、前の画面に戻る方法はないらしい。そんな時はqまたはQで一から閉じてやり直し。


これが可能になります。前の画面に戻るには、デフォルトの割り当てなら < です。

すべてを紹介しきれていないですが、本稿は以上になります。