開発物から資料に至るまであらゆるファイルをTortoiseSVN(Subversion)を利用して管理してるのですが、この手の重要なツールってバージョンアップが怖くてずっと古いまま使いがちです。
今日思い切ってバージョンアップしてみたら、案の定トラブルになりました。
正確には記録がないのですが、 「ra_localなんちゃらエラー:BDB読めません」みたいなエラーで、コミットもできなければリポジトリブラウザすらつかえない始末。
BDBとはBerkeley DBのことで、SubversionではFSFSとBDBのどちらかのファイルシステムでデータを保存することができます。
ところが、file:// プロトコルにおいては互換性の理由から、これが今後FSFSのみの推奨にかわったらしく、今回アップグレードしたTortoiseSVN1.6ではfile:// プロトコルでのBDB利用をサポートしない仕様にかわってしまっていたようです。(参考)
となるとこのDBD形式のリポジトリをFSFSに変換すればいいわけで、その方法をメモに残します。
まずコマンドライン版のSubversionをココで入手します。
DBDの古いリポジトリをrepos_old、
FSFSの新しいリポジトリをrepos_new、とします。
以下コマンドラインで・・・
repos_oldのダンプを保存します。
svnadmin dump repos_old > dump.txt
repos_newをFSFSで作成します(これはTortoiseSVNを利用してもいいかな?)。
svnadmin create repos_new –fs-type fsfs
repos_newにrepos_oldのダンプを読み込みます。
svnadmin load repos_new < dump.txt
これで最新のTortoiseSVN(現時点1.6)で読み込めるリポジトリに変換されました。
無事復旧できてよかったです。。。
参考
「リポジトリを、BDBからFSFSへ、またはFSFSからBDBへ変換するにはどうしたらよいの?」
http://subversion.tigris.org/faq.ja.html#bdb-fsfs-convert