読者です 読者をやめる 読者になる 読者になる

It's raining cats and dogs.

無駄なことなんてないはず

svnでdumpファイルload時に Cannot accept non-LF line endings in 'svn:log' property っていうエラーがでた

svn

バージョンの古いsvnリポジトリでdumpしたリポジトリを新しいバージョンのsvnにloadしようとしたら以下のエラーがでた。

Started new transaction, based on original revision 4257
svnadmin: E125005: Invalid property value found in dumpstream; consider repairing the source or using --bypass-prop-validation while loading.
svnadmin: E125005: Cannot accept non-LF line endings in 'svn:log' property

なんのことやらと思ってぐぐってみると、他にも同じようハマっている方がいた。
http://d.hatena.ne.jp/shinsuke789/20120713/1342162178
ブログの記事によれば、svnの1.6からコミットログの文字コードをチェックするようになり、改行コードもLFでなければいけなくなったみたい。

なので今回のエラーを見る限りrev 4257のログが怪しそう。
念のため対象のリポジトリで全ログを出力してみるとCRLFの改行コードが入っていた。

上記のブログ記事に対応方法スクリプトが記載されていて、マルっと直してくれるスクリプトだったんだけど、今回はCRLFの混入したログはrev 4257だけだったので
このリビジョンのログだけ書き換えることにした。

コミットログの改変とか初めてだったので結構ドキドキしながらやったんだけど、さくっとできた。
参考にしたのは↓
http://terai.xrea.jp/Subversion/SetLog.html

svnadminのsetlogというサブコマンドでできるらしい。

ログを書き換えたら、loadできた。めでたしめでたし。

※ちょっとハマったのが、リポジトリの本体が置いてあるディレクトリに書き込み権限がなくて慌ててインフラの部署に対応をお願いした。