言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

subversion の属性を操作する。

cvs2svn で変換したレポジトリを散策しているうちに、バイナリファイルが化けている事に気がついた。ある適度はバイナリになっているみたいだが、結構な割合でテキストとして認識されてしまっている。阿呆な!

subversion ではバイナリ/テキストの別などはプロパティという部分に記録されているらしい。こんな事に時間をとっている暇も無いが、とりあえず使う部分だけでも何とかしなくては、というわけで、プロパティを操作するようにしてコミットできるようになるまでの cygwin 操作記録です。めんどくさー。

# バイナリファイルを抜き出す。
$ /bin/find . -iregex '.*.\.\(jpeg\|gif\|jpg\|png\|wmv\|doc\|xls\|ppt\|zip\|sar\|swf\)$' > binlist.txt
$ cat binlist.txt | xargs svn propdel svn:keywords
$ cat binlist.txt | xargs svn propdel svn:eol-style
$ cat binlist.txt | xargs svn propset svn:mime-type application/octet-stream

# Smalltalk ファイルの行末を無視するように
$ /bin/find . -regex '.*.\.\(cs\|st\)$' -exec svn propdel svn:eol-style {} \;

# バックアップしていたファイルで上書き
$ rsync -a --exclude=CVS propella.bak/ propella/