Subversion Repository verkleinern / Alte Commits löschen

Wenn ein SVN Repository alt ist und somit auch viele Commits beinhaltet kann es schnell viel Speicherplatz verbrauchen. Ausserdem werden sehr viele unterschiedliche Files gespeichert die die Inode Usage in die Höhe treiben. Es gibt einen einfachen und genialen Weg um so ein Repository schnell zu verkleinern. Leider verliert man damit einen Teil der History. Du musst dir also überlegen was dir wichtiger ist: Die gesamte Historie der Commits oder freier Speicherplatz.

Angenommen dein SVN Repo ist nun bei Revision 10000 angelangt und du brauchst die ersten 5000 Commits nicht mehr, dann kannst du wie folgt vorgehen.

svnadmin dump /path/to/repo -r5000:10000 > repo.dump

Damit erzeugt du einen Dump ab Revision 5000 bis 10000. Jetzt erstellst du ein neues Repository.

svnadmin create /path/to/new-repo

In das neue Repository kannst du jetzt einfach den Dump von vorher importieren.

svnadmin load /path/to/new-repo < repo.dump

Somit hast du ein neues Repository mit 5000 Commits und kannst hier weitermachen. Die Hälfte der Historie wurde gelöscht. Das alte Repo kannst du jetzt in ein Archiv packen und wegsichern.