2007-02-07

Subversion で Berkeley DB のエラー (とその対処)

Fedora Core 2 で管理している Subversion のリポジトリーを、Ubuntu 6.10 に移したところ、エラーが出て svn checkout が出来なかった。原因は、Berkeley DB のバージョンが違ったことにあるらしい。対処法をメモしておく。ちなみに、Fedora Core 2 の Subversion はバージョン 1.0.2。Ubuntu 6.10 は 1.4.3。

まずは、やったこととエラー・メッセージ。tex-symb というプロジェクトのリポジトリーをコピーした。

from.machine$ tar czvf tex-symb.tar.gz ~/repos/svn/tex-symb
from.machine$ scp tex-symb.tar.gz to.machine:~/
from.machine$ ssh to.machine
to.machine$ cd ~/repos/svn
to.machine$ tar xzvf tex-symb.tar.gz
to.machine$ cd ~/program/2007
to.machine$ svn checkout file:///home/ataka/repos/svn/tex-symb/trunk tex-symb
--- Error Message ---
DB_VERSION_MISMATCH: Database environment version mismatch
svn: bdb: Program version 4.3 doesn't match environment version
...

対処

Subversion の FAQ に答えが載ってた。

こちらを参考に。svnadmin recover を実行後 db/ ディレクトリー下の __db.00* ファイルを削除した。

$ svn recover ~/repos/svn/tex-symb/
$ rm ~/repos/svn/tex-symb/db/__db.00*

FAQ には「svnadmin list-unused-dblogs /path/to/repeository で表示されるログ・ファイルも削除する」と書いてあるけど、ぼくの環境ではログ・ファイルは一つも表示されなかった。

これで、古いレポジトリーも新しい環境で checkout できるようになった。

蛇足: Ubuntu への Subversion 1.4.3 のインストール

Ubuntu へ Subversion 1.4.3 をインストールする方法は、ひげぽんさんのサイトを参考にした。

No comments:

Post a Comment