Subversion - zurücksetzen, rollback auf ältere Revision/Versionsstand
Wer schon mal vor dem Problem Stand, dass man sämtliche Änderungen seit einem bestimmten Zeitpunkt,Revision verwerfen möchte wird folgenden Tipp gut gebrauchen können, es gibt mehrere Varianten , wie man das Repository auf den Stand eine bestimmten Revision bringt, z.B. ist es möglich das aktuelle ausgecheckte Repository auf einen vorherigen Stand zu aktualisieren, z.B. über Tortoise oder svn merge. Nachteil beider Varianten gegenüber der dump Variante:
- Repository muss ausgecheckt werden bzw. ein Merge durchgeführt werden
- erst nach einem erneuten commit ist der Stand “zurückgerollt”
- der Revisionsstand wird erhöht und die Änderungen wurden im Log festgehalten, so dass Speicherplatz verbraten wird
- bei einem großen Repository dauert es sehr lange
Nun die, meiner Meinung nach, bessere Variante via svnadmin dump.
Im folgenden 4 Befehle, die reichen um zu einem bestimmten Stand (z.B. Revision 25) zurückzukehren:
- svnadmin dump –revision 0:25 /repo/Repositoryname/ > /root/Repositoryname.dmp
- mv /repo/Repositoryname /repo/Repositoryname-backup
- svnadmin create /repo/Repositoryname
- svnadmin load /repo/Repositoryname/ < /root/Repositoryname.dmp
1 Erzeugt einen dump des Repositorys vom ersten commit bis zur Revision 25
2 Benennt das Original Repository um
3 Legt ein frisches Repository an
4 Importiert das Backup des originalen Repositorys bis zum Stand 25
Nachteil dieser Variante: sie kann nur von jemanden durchgeführt werden, der shell Zugriff auf den Subversion Server hat.
Oktober 1st, 2008 at 23:39
Super! Danke
Januar 30th, 2010 at 18:20
“svnadmin dump –revision” sollte glaub ich eher “svnadmin dump -–revision” heißen, sonst gibts - zumindest bei meiner svn version einen fehler