Man hat ein mittlerweile sehr groß gewordenes SVN Repository und möchte einen Teil davon in ein eigenes, neues Repository auslagern, dabei aber die Revisions-History nicht verlieren. Geht das? Ja klar.
Hier ein Beispiel:
Das bestehende Repo sieht so aus.
RepoA -Teil1 -Teil2 -Teil3
Teil3 wird jetzt zu einem eigenen Projekt und soll ein eigenes Repository bekommen.
1.) Kompletter Export des bestehenden Repos
svnadmin dump RepoA > /tmp/RepoA.dump
2.) Den “gewollten” Teil des Repos ausfiltern
svndumpfilter include Teil3 --drop-empty-revs --renumber-revs < /tmp/RepoA.dump > /tmp/Teil3.dump
3.) Eventuell Pfade anpassen, da im neuen Repo sonst Teil3 als Verzeichnis erscheint, mal will es aber als Repo-Root haben
perl -pi -e 's#Node-path: Teil3#Node-path: #g' /tmp/Teil3.dump
4.) Ein neues Repo anlegen
svnadmin create RepoB
5.) Den erzeugten und gefilterten Dump in das neue Repo laden.
svnadmin load < /tmp/Teil3.dump
Fertig
