はじめに
みなさんはGitを使う際に「Sourcetree」を使っていますでしょうか?
履歴を見たり、検索したりと簡単にできるので私はGitを使う際にはSourcetreeを利用しています。
そんなSourcetreeで、唯一の不満点があります。
それは「Macでは差分(Diff)が見にくい」です。
Windowsの場合はWinMergeというソフトを利用して差分を見ているので快適なのですが、MacではXcodeに付属されているFileMergeというソフトで差分を見ます。
このFileMergeで差分を見ようとすると、上手く動作しなかったり、FileMergeがよくフリーズします。
今回はそんなSourcetreeで差分表示をする際に、FileMergeではなくVisual Studio Codeの差分表示機能を利用するようにしたいと思います。
環境
- M1 Mac macOS BigSur 11.5.2
- Sourcetree 4.1.2
- Visual Studio Code 1.59.1
設定方法
Visual Studio Codeをインストール
まずはVisual Studio Codeをインストールしてください。

Visual Studio Codeをコマンドから使えるようにする
ターミナルを開いて以下のコマンド入力してコマンドが見つかるかどうか確認してください。
% which code
code not found
※Visual Studio Code Insider版を利用している場合は、全て「code」を「code-insiders」に置き換えてください。
「code」のコマンドが見つかった場合は次の項目へ、見つからなかった場合はVisual Studio CodeのPATHを通すためにVisual Studio Codeを起動してください。
Visual Studio Codeを開いたら、ショートカットキー「Shift + Command + P」もしくは[表示]→[コマンドパレット…]を開きます。

コマンドパレットを開いたら「shell」と入力すると「シェル コマンド: PATH内に ‘code’ コマンドをインストールします」という表示がでてくるのでクリックします。

確認のダイアログが出てくるので「OK」を押します。

この後にパスワードを聞いてくるので、パスワードを入力するとPATHにcodeコマンドが追加されます。

再びターミナルで確認すると以下のような表示にかわります。
% which code
/usr/local/bin/code
もしVisual Studio Codeで正しくPATHに追加したのにターミナルで表示されない場合はターミナルを再起動してみてください。
Sourcetreeの設定を変更
上記のVisual Studio Codeのコマンドインストールよりも前にSourcetreeを起動していた場合は、Sourcetreeを念の為、再起動してください。
Sourcetreeを起動して[Sourcetree]→[環境設定…]→[Diff]を開いてください。

開いたら下記のように書き換えてください。
- 差分表示ツールを「カスタム…」に変更
- Diffコマンドを「% which code」で表示された内容(/usr/local/bin/code)に書き換える
- 引数に以下を追加
--wait --diff $LOCAL $REMOTE

これで設定は完了です。
対応結果
設定が完了したので試しに差分を見てみましょう。
Sourcetree上で履歴の中の適当なファイルを選び、右クリックし「外部 Diff」を選択します。
-1024x576.png)
すると。。。

見事にVisual Studio Codeで差分表示してくれました!
動作も軽快なので、こっちのほうが圧倒的に使いやすいですね。。。
以上です。
さいごに
ちなみに私はSourcetreeの動作が重すぎて使い物にならない時代から愛用していますw
コメント