Migration von Berkeley DB (BDB) basierten Repositories in FSFS Repositories

Written on February 24, 2009

Gründe für die Migration von Berkeley DB (BDB) basierten Repositories in FSFS Repositories gibt es viele - einer ist, dass ein Subversion-Repository nicht mehr unter Apache sondern unter SVNServe betrieben werden soll.

Möchte man nun auf das Repository zugreifen, erhält man die Fehlermeldung

"failed to load module for fs type bdb"

Der Grund hierfür ist, dass SVNServe wie auch VisualSVN Server BDB nicht unterstützen. Die Migration erfolgt prinzipiell, indem das BDB-Repository mittels

svnadmin dump

zunächst in eine Datei exportiert wird und danach mittels

svnadmin load

in ein neues FSFS-basiertes Repository importiert wird.

Die Migration wird allerdings dadurch erschwert, dass für die Erstellung des dump-Files eine Subversion-Version benötigt wird, die das gleiche BDB-Schema besitzt, wie die Version, mit der das Repository erstellt wurde.

Andernfalls erhält man Fehlermeldungen wie diese:

"Expected version '1' of repository; found version '2'"

Falls man die ehemals verwendete Subversion-Version nicht mehr besitzt, kann man im Subversion Windows Archive die benötigte Version herunterladen.

Diese sollte man in einen eigenen Ordner installieren, der nicht dem Pfad der aktuellen Installation entspricht.

In der Kommandozeile sollte man nun die PATH-Variable so anpassen, dass sie auf den Installationspfad der Subversion-Version für die BDB-Repositories zeigt.

Danach kann man mit

svnadmin dump meinBDBrepository > meindumpfile

das Repository exportieren.

Nun ändert man in der Kommandozeile die PATH-Variable wieder auf den Eintrag der aktuellen Subversion-Version und führt

svnadmin load meinFSFSrepository < meindumpfile

aus.

Hiermit ist die Konvertierung abgeschlossen.