Maintenant que nous avons traité les tâches quotidiennes pour lesquelles vous utiliserez Subversion, nous allons passer en revue quelques tâches administratives liées à votre copie de travail.
Subversion ne conserve sur le serveur aucune trace de l'état ni de l'existence des copies de travail, il n'y a donc aucun impact côté serveur si des copies de travail traînent un peu partout. De la même façon, pas besoin de prévenir le serveur quand vous effacez une copie de travail.
Si vous envisagez de réutiliser une copie de travail, ça ne pose aucun problème de la laisser sur le disque jusqu'à ce que vous soyez prêts à l'utiliser à nouveau et, le moment venu, il suffit de lancer svn update pour la mettre à jour et ainsi la rendre utilisable.
Cependant, si vous êtes certain de ne plus utiliser une
copie de travail, vous pouvez la supprimer entièrement, mais
vous seriez bien inspirés d'y jeter un œil au cas où des
fichiers non-suivis en versions s'y trouveraient encore.
Pour trouver ces fichiers, lancez
svn status
et examinez tous les fichiers
marqués d'un ?
pour vous assurer qu'ils ne
sont d'aucune importance. Une fois cet examen terminé, vous
pouvez supprimer votre copie de travail
en toute sécurité.
Quand Subversion modifie votre copie de travail (ou
toute information dans .svn
), il essaie
de le faire de la manière la plus sûre possible. Avant de
modifier votre copie de travail, Subversion inscrit ses
intentions dans un fichier de traces. Ensuite, il exécute
les commandes du fichier de traces pour appliquer les
modifications demandées, en plaçant un verrou sur la partie
concernée de la copie de travail pendant cette opération
(pour empêcher d'autres clients Subversion d'accéder à cette
copie de travail au beau milieu des changements). Pour finir,
Subversion supprime le fichier de traces. D'un point de vue
architectural, c'est le même fonctionnement qu'un système de
fichiers journalisé. Si une opération Subversion est
interrompue (c'est-à-dire le processus est tué ou la machine
plante), le fichier de traces reste sur le disque. En
exécutant de nouveau le fichier de traces, Subversion peut
terminer l'opération en cours et votre copie de travail
retrouve un état cohérent.
C'est exactement ce que fait la commande
svn cleanup : elle trouve et exécute les
fichiers de traces restant dans votre copie de travail, en
enlevant les verrous au passage. Si un beau jour Subversion
vous indique qu'une partie de votre copie de travail est
verrouillée (« locked » en anglais), c'est la
commande qu'il faut lancer. Par ailleurs,
svn status affiche un
L
devant les éléments verrouillés :
$ svn status L un-repertoire M un-repertoire/machin.c $ svn cleanup $ svn status M un-repertoire/machin.c
Ne confondez pas ces verrous agissant sur la copie de travail avec les verrous ordinaires que les utilisateurs de Subversion créent quand ils utilisent le modèle de gestion de versions parallèles verrouiller-modifier-libérer ; voir l'encadré Les trois types de « verrous » pour des éclaircissements.