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; jedoch
sollten Sie vorher darin nach unversionierten Dateien
suchen. Um diese Dateien zu finden, rufen Sie svn
status
auf und untersuchen alle Dateien, denen ein
?
voransteht, um sicherzugehen, dass sie
nicht wichtig sind. Wenn Sie die Untersuchung abgeschlossen
haben, können Sie Ihre Arbeitskopie ruhig löschen.
Wenn Subversion Ihre Arbeitskopie (oder irgendwelche
Informationen in .svn
) verändert,
versucht es das so sicher wie möglich zu machen. Bevor die
Arbeitskopie geändert wird, schreibt Subversion seine
Absichten in eine Protokolldatei. Dann führt es die Befehle in
der Protokolldatei aus, um die Änderungen anzuwenden, 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 Protokolldatei. Architektonisch ist dies
ähnlich wie bei einem Dateisystem mit Journal. Falls eine
Subversion-Operation unterbrochen wird (z.B. wenn der Prozess
abgeschossen wird oder der Rechner abstürzt), bleibt die
Protokolldatei auf der Platte. Durch das erneute Ausführen der
Protokolldatei kann Subversion die vorher begonnene Operation
vervollständigen und Ihre Arbeitskopie gelangt wieder in
einen konsistenten Zustand.
Genau das macht svn cleanup: Es
durchsucht Ihre Arbeitskopie und führt etwaige übrig gebliebene
Protokolldateien aus, wobei Sperren in der Arbeitskopie
entfernt werden. Fall Ihnen Subversion jemals mitteilt, dass
ein Teil Ihrer Arbeitskopie „gesperrt“ ist,
sollten Sie diesen Befehl aufrufen. Darüberhinaus zeigt
svn status ein L
neben
gesperrten Objekten an:
$ svn status L somedir M somedir/foo.c $ svn cleanup $ svn status M somedir/foo.c