Recommendおすすめ記事
2020/10/05

SourceTreeカスタムアクションで差分をテキストファイルで生成する方法

kazuki

kazuki

2020/10/05
SourceTreeカスタムアクションで差分をテキストファイルで生成する方法
SHARE

こんにちはkazukiです。
先日、「作業ファイルの差分ファイルがわかるような一覧いただけますか」ということがありました。
差分ファイルがわかるリストは、ときどきお願いされるのですが、その時1つ1つ調べてメモっているのは大変な作業です。
ですが、「SourceTree」を使ってちょこちょこっとするだけで簡単に作成できちゃいます。(カスタムアクションっていいます)

ちなみにSourceTreeを既に使用している+Macを想定して記載してます。

作業の流れ

はじめ簡単な作業の流れを記載しておきます。

  • バッチファイルを用意する
  • SourceTreeでカスタムアクションを登録してバッチファイルを紐づける
  • 登録したカスタムアクションを実行!

上記の流れです。

バッチファイルを用意する

最初に、SourceTreeに「これをやってほしい!」ということを書いたファイル(バッチファイル)を用意する必要があります。

ちなみに今回は「list_diff.sh」という名前のファイルを用意します。

まず、テキストエディタなどで新規ファイルを作成し、以下のコードを書き込みます。

#!/bin/sh
git diff --stat --name-status $2 $1 > filelist.txt

ここでは「更新などの差分をfilelist.txtというテキストファイルに一覧で記入し生成してください」って感じのが書いてあります。

そして、上記を記入したファイルを保存し、ファイル名を「list_diff」に、拡張子を「.sh」にして「list_diff.sh」という形にしておきます。

保存しておくポイント

ファイル保存をするのですが、その後SourceTreeのカスタムアクションを追加し、今回作成したファイルに紐付けます。
なので、作成したファイルをわかり易い消さなそうなところに保存しておきましょう。

また、この他にもこういったカスタムアクションを追加していくと思うので、どこかのファイルにまとめて保存しておきましょう。

ちなみに私は、こんな感じでカスタムアクションを置いておくフォルダをどこかに作り、まとめて保存しています。

SourceTreeでカスタムアクションを登録してバッチファイルを紐づける

次にカスタムアクションを登録します。

まず、SourceTreeを起動させ、左上のりんごマーク横の
SourceTree環境設定
と進みます。

そうすると、新規ウィンドウで環境設定が表示されますので、カスタムアクションタブをクリックし、左下の「追加」ボタンをクリックします。すると以下の表示に変わります。

こちらの

  • メニューキャプション
  • 実行するスクリプト/li>
  • パラメータ

にそれぞれ入力していきます。

ちょっと説明すると

  • メニューキャプション → アクションの名前(自分でわかり易いものでOK)
  • 実行するスクリプト → 作成したバッチファイルのパスを指定してあげます(右の点線クリックでいけます)
  • パラメータ → 実行する引数を指定してあげます。(今回は$SHAです)

ちなみに私はこんな感じにしています。実行するスクリプトの場所は先ほど保存したバッチファイルの場所を指定してください。

そして、「OK」ボタンで登録は完了です。

登録したカスタムアクションを実行!

登録したカスタムアクションを実行します。
どこからどこまでの差分がほしいのか指定してあげます。

  1. 開始したい作業(コミット項目)をクリック
  2. commandを押しながらほしい差分の作業(コミット項目)をクリック

ほしい差分の項目をクリックしましたら後は、もう実行するのみです!

  1. 右クリック
  2. カスタムアクション
  3. 先ほど登録したカスタムアクション(メニューキャプション名)をクリック

すると「filelist.txt」というファイルが該当ディレクトリに生成されます!これで完了です!
ちなみに参考画像のコミットメモが「更新」ばかりになっていますがこちらは良くない例です!すみません!

生成されたテキストファイルの中身

無事テキストファイルが生成されると「M」やら「A」やらアルファベットが先頭にふってあります。簡単に説明すると

  • A : 追加されたファイル
  • M : 更新されたファイル
  • D : 削除されたファイル

です!でもこちらは私の環境でなのでもしかすると念のためちょろっとSourceTreeと見比べてからクライアント様などに提出した方がいいと思います!

他の記事を探す
SHARE