Direkt zum Inhalt | Direkt zur Navigation

Sektionen
Startseite Campus Koblenz Rechenzentrum (GHRKO) FAQ Verschiedenes Wie kann ich mein Subversion-Repository verkleinern?

Wie kann ich mein Subversion-Repository verkleinern?

Aufgrund der in einem Repository abgespeicherten Historie ist es nicht einfach, nicht mehr benötigte Teile eines Repositories zu löschen: Natürlich kann man in der aktuellen Arbeitskopie löschen und committen, die Historie der gelöschten (evtl. sehr großen) Datein bleibt aber erhalten.

Löschen alter Revisions

Seit der Version 1.7 der Subversion Software gibt es ein Werkzeug svnrdump, mit dem ein Abzug eines Repository inklusive Historie erzeugt und auch wieder eingespielt werden kann. Besteht z.B. ein Repository aus 1000 Versionen, von denen man die ersten 500 Versionen nicht mehr benötigt, so kann man diese folgendermaßen löschen:

  1. svnrdump dump -r501:1000 https://svn.uni-koblenz.de/Rechnerkennung/Repository > Repository.dump
  2. Dann Repository auf dem svn-Server löschen und wieder neu anlegen.
  3. svnrdump load https://svn.uni-koblenz.de/Rechnerkennung/Repository < Repository.dump

Auf dem Rechner linux.uni-koblenz.de steht eine aktuelle Subversion-Version zur Verfügung, die auch svnrdump enthält.

Wichtig: Vor dem Schritt 3, d.h. nachdem Sie frische Repositories angelegt haben, müssen Sie mit uns Rücksprache halten, da für den Datenimport ein Hook von unserer Seite angelegt werden muss!

Löschen von Teilbäumen

Um Teile des Repositories inklusive aller Revisions zu löschen, benötigt man einen Dump des Repositories, den man dann mittels des Werkzeugs svndumpfilter bearbeiten und wieder einspielen kann. Leider ist die Ausgabe von svnrdump nicht mit svndumpfilter kompatibel, so dass der Dump über die Profilseiten der Rechnerkennung erzeugt werden muss.

Nehmen wir an, innerhalb eines Repositories gibt es ein Verzeichnis tobedeleted, das nicht mehr innerhalb des Repositories benötigt wird. Dann laden Sie über die Profilseiten einen Dump des Repositories herunter. Diesen Dump bearbeiten Sie mittels

svndumpfilter exclude tobedeleted < Repository.dump > Repositorynew.dump

Nun löschen Sie das Repository, legen es wieder neu an und laden Repositorynew.dump mittels svnrdump wieder hoch.

zuletzt verändert: 24.04.2012 10:10

Kontakt