2016.08.04
SourceTreeで差分ファイルを抽出
GitのクライアントでSourceTreeを利用する時、コミットの差分ファアイルをZIPファイルとして抽出する方法をご紹介致します。追加開発で差分ファイルのみを納品する時などで便利です。
動作環境
- OS:Windows 10 Home
- Git:version 2.8.3.windows.1
- SourceTree:Version 1.9.5.0
概要
「git diff」コマンドを利用して、差分ファイル名を取得し、差分ファイルをアカイブするWindowsのBatchファイルを作成します。SourceTreeでは、カスタマイズ操作で作成したBatchファイルを登録します。 コミット間の差分ファイルを抽出するためには、SourceTreeでコミットを選択し、カスタマイズ操作を実行します。Batchファイルの作成
以下の内容のBatchファイルを作成し、適切な場所に配置します。 例では「C:\dev\sourcetree_script\ export_diff_zip.bat」に配置しました。 指定された2つのコミットの差分ファイル名のリストを取得し、そのファイルをアカイブします。 差分ファイル名に空白が入力されていても問題無いですが、「,」が入力されている場合は、正常に差分ファイル名を取得できませんのでご注意下さい。if "%2" EQU "" ( set PARAM1=HEAD set PARAM2=%1 ) else ( set PARAM1=%1 set PARAM2=%2 ) setlocal enabledelayedexpansion set RET_DIR= for /F "delims=, usebackq" %%i in (`git diff --name-only %PARAM1% %PARAM2%`) do ( set RET_DIR=!RET_DIR! "%%i" ) set dt2=%date:~0,10% set dt2=%dt2:/=% set dt2=%dt2: =0% set tm2=%time:~0,8% set tm2=%tm2::=% set tm2=%tm2: =0% set fname2=archive_%dt2%_%tm2%.zip git archive --format=zip --prefix=archive/ %PARAM1% %RET_DIR% -o %fname2%
SourceTreeにBatchファイルを登録
SourceTreeを起動して、「メニュー>ツール>オプション」を選択します。 オプション画面が表示されたら「カスタム操作」タブを選択し、「追加」ボタンを押します。 カスタム操作の編集画面が表示されたら、以下の内容を設定し、「OK」を押します。- メニュー表示名:任意
- 実行するスクリプト:作成したBatchファイルを選択します。
- パラメータ:$SHA