Windowsのコマンドライン版Subversion(SVN)の外部DIFFツールにWinMergeを設定したが上手くいかなかった

WinMergeをSubversionのdiffとして使用する – てんぷらメモの方法でSubversionの外部DIFFツールにWinMergeを設定したけど上手くいかなかった。WinMergeに渡される比較用の一時ファイル(tmpfile.tmp)が存在しない為にWinMergeのファイル選択のダイアログが表示されてしまう。

色々と検索ワードを変えて調べてみたが解決せず。ふと”subversion diff tempfile.tmp”で検索したらドンピシャリ。Subversion r12がヒット。2ちゃんねるの過去ログでしょうか。

138デフォルトの名無しさんsage2009/12/02(水) 01:52:09

ttp://terai.xrea.jp/Subversion/WinMerge.html

このページを参考にWinMergeをSubversionのdiffとして使用する設定を行ったのですが

svn diff test.txt

はうまくいきますが

svn diff -r 100 test.txt

はWinMergeのファイル指定のダイアログが表示されうまくいきません。

どうもリビジョン100のファイルが取得できないようです。

どなたか原因がわかる方いらっしゃいませんか?

140デフォルトの名無しさんsage2009/12/02(水) 02:25:53

svn diff -r 100 test.txt .

じゃないの?

143デフォルトの名無しさんsage2009/12/02(水) 23:04:26

>>140

ダメでした。

“svn diff -r 100:101 test.txt”もダメです。

コマンドラインでは成功します。

ただ最新版がr102の場合、

“svn diff -r 102 test.txt”なら成功します。

ルーターのLEDが点滅しているので取りにはいっているようです。

考えられる原因は「OSがVista、ノートンを使っている」くらいでしょうか。

144デフォルトの名無しさんsage2009/12/03(木) 10:10:05

それぞれのバージョンは?

145デフォルトの名無しさんsage2009/12/03(木) 23:00:08

>>144

バッチファイルの

START “WinMerge” /B

を削除するとうまくいきました。

どうもこれがあると比較用のtempfile.tmpが消えてしまうようです。

ちなみにsvnクライアントのバージョンは1.6.6です。

サーバーはわかりません。

138さんは神ですね。

手順をまとめると…

以下のようなバッチファイルを作成して、そのパスを%APPDATA%\Subversion\configファイルのhelpersセクション→diff-cmdキーに設定する。

@ECHO OFF

[WinMergeU.exeのパス] /e /s /ub /dl %3 /dr %5 %6 %7

というわけでした。