外部の差分ツールとマージツール
Gitcito の 差分ビューア と 3 ペインのリゾルバ は、たいて いの日をこなします。こなせない日もあります。4,000 行の生成ファイル、4 列を同時に見たい マージ、あるいは単純に、10 年使ってきてどんな新顔より速く読めるツールがある、という日 です。
設定 → 一般 → 外部の差分ツールとマージツール。
これは git の一覧であって、こちらの一覧ではありません
Gitcito は独自の表を持ちません。ドロップダウンの中身は git difftool --tool-help と
git mergetool --tool-help です。だからこうなります。
git がすでにあなたのマシンで見つけたツールが先に並び、知ってはいるが見つからない ものは 未インストール の印を付けて後ろに並びます。
独自のツールも、追加の対応なしに動きます。 次のように設定してあれば
git config --global difftool.mine.cmd 'mycompare "$LOCAL" "$REMOTE"'mineは組み込みのものと同じようにドロップダウンに現れます。選択は グローバルの git 設定の
diff.toolとmerge.toolに書き込まれます。 ターミナルが読むのと同じキーです。ここで設定すればコマンドラインのgit difftoolも 同じように振る舞い、あちらで設定すれば Gitcito がそれを拾います。
git は最初からおよそ 30 種類のツールを知っています。Kaleidoscope、Beyond Compare、 Meld、KDiff3、P4Merge、Araxis、DiffMerge、WinMerge、FileMerge、VS Code、そして vim 系列などです。
アクションが現れる場所
| 場所 | アクション |
|---|---|
| コミット作成欄 の変更されたファイル | <tool> で差分を見る — 作業ツリーとインデックスの比較 |
| コンフリクトリゾルバ | <tool> でマージ — 完全な 3 方向マージ |
どちらの項目も、ツールが実際に設定されているときにだけ現れます。設定されていない
git difftool はただエラーになるだけで、反応しないボタンはボタンがないより悪いから
です。
ツールが開いている間に起きること
Gitcito はツールが閉じるのを待ちます。これは意図したものです。git mergetool が
解決済みファイルをステージするのはツールが終了した あと なので、そうしないと報告
できる結果が存在しません。ボタンがすぐ戻らずスピナーを出すのはそのためです。
アプリのそれ以外は反応したままです。これらは通常の git 操作を直列化するリポジトリ 単位のロックの外側で走るので、昼休みの間ずっとマージツールを開いたままにしても、 その裏のタブが固まることはありません。
外部でのマージが成功すると、git 自身がファイルをステージし、Gitcito はリゾルバを閉じて 再読み込みします。保存せずにツールを閉じた場合、git がその旨を伝え、何も変わりません。
.orig ファイル
git mergetool は既定で、解決済みファイルの隣に <file>.orig というバックアップを
残します。これは Gitcito ではなく git の振る舞いです。設定のトグルは
mergetool.keepBackup を書き込みます。オフにすれば、解決済みファイルは何も残しません。