[Sourcetree]MacでDiffの差分表示をFileMargeからVisual Studio Codeに変更する方法

Sourcetree

はじめに

みなさんは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 - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and availa...

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」を選択します。

すると。。。

見事にVisual Studio Codeで差分表示してくれました!

動作も軽快なので、こっちのほうが圧倒的に使いやすいですね。。。

以上です。

さいごに

ちなみに私はSourcetreeの動作が重すぎて使い物にならない時代から愛用していますw

おすすめ参考書

コメント

タイトルとURLをコピーしました