svn diffで改行コード無視した上で、色付表示する

2013-11-14

svn diffで改行コード無視した上で、色付表示する

svn diffに色づけすることについては、以前のエントリーで3種類ほど、まとめてみた。 svn diff に色を付ける方法まとめ 中でも2番目に紹介しているcolordiffを利用する方法を愛用しているが、以下のような問題点がある。

  • sjisのコードがdiffで文字化けする
  • 改行コード無視の引数が使えない
    1番目に関しては、nkfを使って、以下のようなスクリプトでcolordiffをラップしてやることで解消していた。
1
2
#!/bin/bash
colordiff --label "`echo $3 | nkf -s`" -U 3 $6 $7 --label "`echo $5 | nkf -s`" | nkf -w

ただし、2番目はそもそも.subversion/configに設定した外部プログラムに対して、svn diffコマンドがオプションパラメータまでは渡してくれないというのが原因なので、colordiffが対応していないのが当たり前なのであった。 ただ、デザイナーさんとかがcssの改行コードを全部CR+LFに書き換えてくることはよくあることなので、改行コード無視のsvn diffを見たいときは、svnのdiff設定をデフォルトに戻して、白黒で確認するという悲しい作業になっていた。 悲しいのは嫌なので、簡単なphpスクリプトを作ってみた。 https://github.com/hanhan1978/junks/blob/master/tools/colordiff.php 普段は改行コードを無視しないようになっているが、環境変数ignore_crを1とか設定してやれば、改行コード無視でdiffしてくれるようにした。 つーか、時代はgitだし、今更svnのエントリ書くなと言われそうだ・・・。