Diese Dokumentation wurde zur Beschreibung der Serie 1.7.x von Apache™ Subversion® erstellt. Falls Sie eine unterschiedliche Version von Subversion einsetzen, sei Ihnen dringend angeraten, bei http://www.svnbook.com/ vorbeizuschauen und stattdessen die zu Ihrer Version von Subversion passende Version dieser Dokumentation heranzzuiehen.
Nachdem wir nun die täglichen Aufgaben abgehandelt haben, für die Sie regelmäßig Subversion verwenden, gehen wir nun ein paar Verwaltungsaufgaben für Ihre Arbeitskopie durch.
Subversion merkt sich weder den Zustand noch das Vorhandensein einer Arbeitskopie auf dem Server, so dass serverseitig kein Aufwand für Arbeitskopien anfällt. Dementsprechend besteht keine Notwendigkeit, dem Server mitzuteilen, dass Sie vorhaben, eine Arbeitskopie zu löschen.
Falls die Wahrscheinlichkeit besteht, dass Sie eine Arbeitskopie wiederverwenden möchten, ist es nicht verkehrt, sie einfach auf der Platte zu lassen, bis Sie sie wieder benutzen wollen. Zu diesem Zeitpunkt reicht lediglich ein svn update zum Aktualisieren, und sie ist gebrauchsfertig.
Falls Sie die Arbeitskopie jedoch bestimmt nicht mehr
verwenden möchten, können Sie sie ruhig löschen, indem Sie die
zum Löschen von Verzeichnissen vorgesehenen Bordmittel Ihres
Betriebssystems verwenden. Wir empfehlen jedoch, vorher
svn status
aufzurufen und alle Dateien
zu untersuchen, denen ein ?
voransteht, um
sicherzugehen, dass sie nicht wichtig sind.
Wenn Subversion Ihre Arbeitskopie verändert, entweder Ihre Dateien oder seinen eigenen Verwaltungsbereich, versucht es so sicher vorzugehen wie möglich. Bevor die Arbeitskopie geändert wird, schreibt Subversion seine Absichten in eine Art private „Merkliste“. Dann führt es diese Aktionen aus, um die Änderungen durchzuführen, wobei es während der Arbeit den relevanten Teil der Arbeitskopie sperrt, um andere Clients davon abzuhalten, während der Änderung auf die Arbeitskopie zuzugreifen. Zuletzt entfernt Subversion die Sperre und räumt die private Merkliste auf. Architektonisch ähnelt das einem Dateisystem mit Journal. Falls eine Operation von Subversion unterbrochen wird (z.B. wenn der Prozess abgeschossen wird oder der Rechner abstürzt), verbleibt die private Merkliste auf der Platte. Das erlaubt es Subversion später zu der Merkliste zurückzukehren, um die vorher begonnene Operationen zu vervollständigen und Ihre Arbeitskopie wieder in einen konsistenten Zustand zu bringen.
Genau das macht svn cleanup: Es
durchsucht Ihre Arbeitskopie und arbeitet etwaige übrig
gebliebene Punkte von der Merkliste ab, wobei Sperren in der
Arbeitskopie entfernt werden. Falls Ihnen Subversion jemals
mitteilt, dass ein Teil Ihrer Arbeitskopie
„gesperrt“ ist, sollten Sie svn
cleanup aufrufen, um das Problem zu beheben. Der
Befehl svn status informiert Sie auch über
administrative Sperren in der Arbeitskopie, indem es ein
L
neben diesen gesperrten Pfaden
anzeigt:
$ svn status L somedir M somedir/foo.c $ svn cleanup $ svn status M somedir/foo.c
Verwechseln Sie diese administrativen Sperren nicht mit den anwenderverwalteten Sperren, die Subversion-Anwender anlegen, wenn sie das sperren-ändern-freigeben-Modell der gleichzeitigen Versionskontrolle verwenden; zur Klärung siehe den Kasten Die drei Bedeutungen von „Sperre“.