LoginSignup
2
0

More than 5 years have passed since last update.

TortoiseSVNの差分viewerをでっち上げる

Last updated at Posted at 2012-12-26

TortoiseSVNで管理しているバイナリファイルの差分を取るために差分viewerを適当に書いてみたのでメモを残しておきます。

概要

  • TortoiseSVNの差分viewerをRubyで書いて、Exerbで実行ファイル化した。
  • バイナリファイルを一旦テキストにしてから比較する。
  • 差分の表示自体はWinMergeに丸投げ。

スクリプト

Rubyで以下のようなスクリプトを書きました。以下のスクリプトは実際に動かしたものではありませんので、うまく動かなかったらごめんなさい。

xxx_diff.rb
def xxx_to_str(file)
  # バイナリファイル file の内容を文字列にして返すようなことを書く。
end

require 'tempfile'
a = Tempfile.new("a_")
b = Tempfile.new("b_")
begin
  a.write(xxx_to_str(ARGV[0]))
  b.write(xxx_to_str(ARGV[1]))
  a.close
  b.close
  system "C:/Program Files/WinMerge/WinMergeU.exe", a.path, b.path
ensure
  a.close!
  b.close!
end

スクリプトの実行ファイル化

幾つか方法があると思いますが、私はExerbを使いました。

> ruby -rexerb/mkexy xxx_diff.rb
(エラーが出るが省略)
> exerb xxx_diff.exy

これで xxx_diff.exe が出来上がります。

TortoiseSVNの設定

TortoiseSVNの設定ダイアログから「外部プログラム > 差分ビューアー」の「高度な設定」ボタンを押して、差分の高度な設定ダイアログにて拡張子と先ほどの xxx_diff.exe を設定します。引数は不要です。

試す

あとはExplorer上のバイナリファイルのアイコンから差分表示を呼び出したり、ログから差分を表示したりすればいいと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0