Subversion を導入してから、ファイルをマージする機会が増えてきました。TortoiseMerge は日本語の対応が半端なので
WinMerge を導入したのですが、こいつはプラグインを使っていろんなファイルを比較できたりして便利です。
今のプロジェクトでは Excel ファイルで設計書書くことが多いのですが、Excel 比較用プラグインにも色々あるので、それぞれどんな感じで差分表示するのかを比較してみました。
■変更内容

変更前

変更後
こんな感じで、
・varchar(60) → varchar(120) に変更
・変更セルの文字色変更
・変更行の背景色変更
・別のセルの書式変更
を行ってみました。
■TortoiseMerge 付属の diff-xls.vbs
TortoiseSVN のデフォルト設定で使われる差分ビューアです。
OLE で CompareSideBySideWith() してるだけで、利用には Excel 2003 以降が必要です。
今回は変更箇所を自分でハイライトしてるのでわかりやすいですが、実際には差分を探さないといけないのでマージするのも大変だと思います。
ただ、どこに差異があるか把握した上で修正するのであれば、この方式が一番便利そうです。
■WinMerge 付属の CompareMSWordFiles.dll
TortoiseSVN 設定→外部プログラム→差分ビューア→高度な設定 から、.xls の設定を以下のように変更した状態。
wscript.exe "C:\Program Files\TortoiseSVN\Diff-Scripts\diff-xls.vbs" %base %mine //E:vbscript
↓
C:\Program Files\WinMerge\WinMergeU.exe
セルの値を CSV 形式で出力してる感じ。
Last author とか Last save time とかも出るので、このあたり便利です。
■
xdocdiff WinMerge Plugin
amb_xdocdiffPlugin.dll とかいう名称。
OLE 等を使ってないので、他のものに比べると格段に高速です。
各セルの値がタブ区切りのテキストとして表示されます。
通常の使用ではこれがいいんじゃないかと。
■ExcelToText.sct
WinMerge 日本語版で配布されているプラグイン。
タブ区切りの表示で、xdocdiff と同じような感じです。
VBA のコードとかも表示してくれるとのことなので、そっち向きの人にはこれがいいのかも。
といったところで、フォーマットの変更を差分表示する方法がないことに気づきまして。プラグインを作ってみたんですが、
次回はその話
をする予定。
・・・といっても、マニア向けなので期待しないで下さい。
ttp://www3.plala.or.jp/kazuasa/exdiff.html
ただ、コマンドラインから引数受け取れないっぽいから、そこが不便かも。WSH で自動化すればいいんだけど・・・気が向いたらやろう。