SVN 資料庫格式太舊問題

幾年來,我習慣把工作上的文件檔案與程式檔案都用SVN來管理,而且只要一段時間把SVN資料庫備分即可。但最近公司電腦掛了,而我也換了4核心的新電腦。今天早上,想要把工作檔案更新到資料庫上(Commit)時,發現出現Failed to load module for FS type ‘bdb’這樣的錯誤訊息,而不給Commit。
Google了一下,發現原來這是資料庫新舊的問題。只要dump出來,再重新create新的資料庫,然後再load進去就可以了。
找到的資料如下。(為了尊重原作,我一個字都沒改XD)

Failed to load module for FS type ‘bdb’ in TortoiseSVN 1.6.x

May 15th, 2009 by Robert

Today I’ve met small problem with my beloved TortoiseSVN client. I was in need to access some old repository stored locally on my computer – for newer projects I’m usingdedicated Debian based SVN server. Anyway, trying to access to my local repository via TortoiseSVN has resulted with following message:

Failed to load module for FS type ‘bdb’

After quick Googling it appeared that from branch 1.6.x, TortoiseSVN doesn’t support local file:/// repositories based on BDB and they need to be converted to new FSFS format using ’svnadmin’ command line tool as it is explained in SVNBook. As ’svnadmin’ tool is not present in TortoiseSVN, some additional work is needed.

Finally I did in following way:

  1. download and Tigris build of SVN (it was svn-win32-1.6.1.zip in my case). I’ve tried both 1.5.x and 1.6.x version of CollabNet’s SVN but apparently they do not support local BDB as well,
  2. unpack it to any directory, and using command line enter to the bin subdirectory where the svnadmin.exe tool is stored
  3. as written in the book, make dump of your repository with following command: svnadmin dump c:\FullPathToOldRepository > dumpfile.bin
  4. create new repository in choosen directory, you can use TorotoiseSVN for it as well, now it won’t ask you for data storage format as BDB is disabled, so it will use FSFS.
  5. import dump data into new repository: svnadmin load c:\FullPathToNewRepository < dumpfile.bin

That is, it worked for me like a charm.