get the solution


Subversion – Repositories zusammenlegen – exportieren

By
on Regards: Archive; Infrastructure;

Vor kurzem stand ich vor dem Problem mehrere Repositories die ich mit Subversion verwalte zu einer einzigen zusammen zu führen. Das geht recht einfach.

  1. Neue Repositorie anlegen (z.B. mit “svnadmin create REPOS_PATH” oder über websvn)
  2. Ins Verzeichnis wechseln wo die Repositories gespeichert sind
  3. Alle Repositories die man jetzt in die neue Repositorie laden bzw. einfügen will müssen mit dump exportiert werden.
  4. Könnte z.B. so aussehen: fes-a120d19nas:~# svnadmin dump /c/.subversion/Repositoriename1/ > /backupRepositoriename1.dump
  5. Danach muss man nur noch alle dumps in die neue Repositorie laden
  6. Könnte z.B. so aussehen: fes-a120d19nas:~# svnadmin load /c/.subversion/UnsereNeueRepositoriename/ < /backup/Repositoriename1.dump
  7. Danach könnt ihr die nicht benötigten Repositories z.B. so ” rm /c/.subversion/AlteRepositorie/ -rf” löschen

Allerdings kann es sein, dass in der alten und in der neuen Repositorie die Ordnernamen gleich heißen. Das führt zu einem Konflikt und der “load” Vorgang kann nicht fortgesetzt werden.

Das wird höchstwahrscheinlich mit den Ordnern branches, trunk, tags passieren.

Man muss also dafür sorgen, dass entweder der “dump” oder die Zielrespositorie diesen Ordner nicht enthält.

Man kann sie mit dem Befehl “svn rm http://server/svn/respositorie/trunk” löschen. Notfalls wäre ein Umbennen des Ordners ebenfalls möglich mit  “svn mv http://server/svn/respositorie/trunk http://server/svn/respositorie/trunk1”
Auch immer gut zu wissen: svn aus einem Verzeichnis löschen:

find . -name “.svn” -exec rm -rf {} \;

Links:

http://svnbook.red-bean.com/en/1.1/re29.html
http://de.wikipedia.org/wiki/Apache_Subversion