Wie Hubert sagt, svnadmin pack
werden alle einzelnen Repo-Dateien in einem Verzeichnis in eine einzige große Datei gepackt. Dies spart Ihnen etwas Platz, verschiebt aber nur den Tag der Abrechnung für Sie. (Es sollte jedoch die Verlaufsoperationen beschleunigen, daher ist es trotzdem ein guter Vorschlag). Zu beachten ist, dass es nur für Sharded-Verzeichnisse funktioniert (dh die neue Verzeichnisstruktur besteht darin, 1000 Revisionen in einem einzigen Verzeichnis abzulegen und dann ein neues Verzeichnis zu starten) und nur die alten Shard-Verzeichnisse packt, nicht das mit der aktuellen Revision drin.
Sie können also nur alte Revisionen aus Ihrem Verlauf löschen. Dies erfordert das Speichern und Laden von svnadmin , optional mit einem Filter zum Entfernen von Verzeichnissen in Ihrem Repo, die Sie nicht mehr benötigen. (zB alte temporäre Zweige).
Das Speichern ist einfach: svnadmin dump -r xxx:HEAD
Dabei ist xxx die älteste Revision, die Sie behalten möchten (dh, die neuesten werden gelöscht, sodass Ihre alte Revision wie die Archivierung verworfen wird). Sie können das Archiv der alten Revisionen behalten, indem Sie sie auch sichern ( svnadmin dump -r 1:xxx
)
Sobald Sie Ihr Dumpfile haben, ist das Laden so einfach wie das Ausführen von svnadmin load , das den Namen des Dumpfiles übergibt. Es ist möglicherweise eine gute Idee, das alte Repo vor dem Laden des neuen zu löschen. Dann profitieren Sie von den neuesten Eigenschaften des Server-Dateisystems, sofern Sie diese noch nicht haben.
Wenn Sie alle alten Revisionen beibehalten , aber bestimmte Verzeichnisse herausfiltern möchten, sollten Sie das Dumpfile über svndumpfilter ausführen , wodurch die angegebenen Pfade entfernt werden. Beachten Sie, dass Sie einen Dump erstellen möchten, ohne die Option --incremental zu verwenden.
Testen Sie natürlich alle Vorgänge lokal - sichern Sie sie in eine lokale Datei, laden Sie sie dann in ein temporäres Repo auf Ihrem lokalen Laufwerk (es wird auch schneller sein) und testen Sie, ob der Verlauf und die neueste Version in Ordnung sind. Ich exportiere die neueste Version in eine Verzeichnis und verwenden Sie Winmerge, um zu überprüfen, ob die Dateien mit einem Export der neuesten Version aus dem Live-Repo identisch sind. Versuchen Sie es auch mit einer historischen Revision, wenn Sie paranoid sein möchten.