2011-02-24
TortoiseSVN+WinMerge で半角スペースを含むファイルを diff できない件
(追記)
- ちょっと早とちったかもしれない(二重にエスケープされるケースがある?)ので再調査中です・・・。
- ダブルクォートで囲むのはまずいらしい。
- ダブルクォートで囲まれていないのは .xls ファイルなんかの diff で xdocdiff が呼び出されるケースだけ?
- 対策方法が全然違いそうなので、ごっそり書き直しそうな気がします。
(追記ここまで)
TortoiseSVN から WinMerge を呼び出して diff を取ろうとすると、
問題が発生したため、WinMerge Application を終了します。 ご不便をおかけして申し訳ありません。
のように言われてしまうケースがあったので原因を調べてみました。(TortoiseSVN 1.6.12, Build 20536 - 32 Bit、WinMerge Version 2.13.13.9:-jp-9 Unicode x86 で確認。)
WinMerge インストール時に TortoiseSVN の diff コマンドが
D:\WinMerge\WinMergeU.exe -e -ub -dl %bname -dr %yname %base %mine
のように設定されるわけですが、ファイル名(%base、%mine)が自動的にダブルクォートで囲まれる一方で、タイトル文字列(%bname と %yname)はダブルクォートで囲まれないのでエラーになってしまっているようです。
TortoiseSVN の設定(External Programs→Diff Viewer→External)で %bname と %yname を
D:\WinMerge\WinMergeU.exe -e -ub -dl "%bname" -dr "%yname" %base %mine
のようにダブルクォートで囲んでしまえば、ちゃんと動作するようになりました。
さて、この問題はどこに報告したもんだか。%bname と %yname がクォートされない仕様だったら WinMerge のインストーラの問題だし、これがバグだったら TortoiseSVN 側の問題だし・・・。
トラックバック - http://d.hatena.ne.jp/miau/20110224/1298530670
リンク元
- 1 http://pipes.yahoo.com/pipes/pipe.info?_id=02db597254ec68550537866a2fca2ce6
- 1 http://www.google.co.jp/reader/igoogle-module?up_displayStreamId=user/-/state/com.google/reading-list&up_itemCount=10&up_ranking=d&up_readItemsVisible=0&up_linkTarget=new&lang=ja&country=jp&.lang=ja&.country=jp&synd=ig&mid=36&ifpctok=1337095913257288503&e
- 1 http://www.google.com/reader/view/
おとなり日記
- 2011-02-23 ひらいずみまゆのなんとか 3/26 11%
- 2011-02-24 お仕事メモ帳 3/42 7%
- 2011-02-21 BOOLEANLABEL 3/52 5%