Hatena::Diary

miauの避難所

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 インストール時に TortoiseSVNdiff コマンドが

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
おとなり日記