WinMergeをSubversionのdiffとして使用する
編集者:Terai Atsuhiro
作成日:
更新日:2008-12-15 (Mon) 01:39:39
概要
このページでは、Windows環境のSubversionで、差分の比較(diff)に、WinMergeを使用する方法をメモしています。
インストール
どちらも特に設定は必要ありません。WinMerge 日本語版などからダウンロードしてインストールするだけです。ここではそれぞれ以下のバージョンを利用しています。
- svn 1.4.2 (r22196)
- WinMerge-2.7.4.0-jp-2
コマンドライン
コマンドラインから使用する場合は、以下の例のようにオプションを指定します。
svn diff Example.java -r PREV:HEAD --diff-cmd="C:\Program Files\WinMerge\WinMerge.exe" -x "/dl /dr"
バッチファイルを使って、入力を短くしてみます。以下は、パスの通った場所にwinmerge.batを作成して使用する例になっています。
- winmerge.bat ファイル
@ECHO OFF SETLOCAL REM Configure your favorite diff program here. REM SET DIFF="C:\Program Files\Funky Stuff\My Diff Tool.exe" SET DIFF="C:\Program Files\WinMerge\WinMergeU.exe" REM Subversion provides the paths we need as the sixth and seventh REM parameters. SET LEFT=%6 SET RIGHT=%7 REM Call the diff command (change the following line to make sense for REM your merge program). REM %DIFF% --left %LEFT% --right %RIGHT% START "WinMerge" /B %DIFF% /e /s /ub --left %LEFT% --right %RIGHT% /dl %3 /dr %5 REM Return an errorcode of 0 if no differences were detected, 1 if some were. REM Any other errorcode will be treated as fatal.
バッチファイルを作成したら、コマンドラインでテストします。
svn diff Example.java -r PREV:HEAD --diff-cmd=winmerge.bat
config ファイル
C:\Documents and Settings\ユーザ名\Application Data\Subversion\config ファイルに、diff-cmdオプションを追加して先に作成したバッチファイルを指定しています。
[helpers] ### Set diff-cmd to the absolute path of your 'diff' program. ### This will override the compile-time default, which is to use ### Subversion's internal diff implementation. # diff-cmd = diff_program (diff, gdiff, etc.) diff-cmd = winmerge.bat
コマンドラインなどで、diff-cmdオプションを指定しなくても、WinMergeが立ち上がります*1。
svn diff Example.java -r PREV:HEAD
参考リンク
- WinMerge 日本語版
- 第9章 Subversion リファレンス
- 16. Command Line
- Using External Differencing Tools
- Joshua Flanagan - Using WinMerge with Subversion
コメント
- Joshua Flanagan - Using WinMerge with Subversionを参考にしてバッチファイルを変更(比較を一つのWinMergeで開くように)しました。 -- terai 2008-07-01 (火) 17:46:39
- winmerge.bat のコメントに日本語があると、このページでうまく表示できていなかったのを修正。 -- terai 2008-12-15 (月) 20:36:03
