Subversion essaie de dissiper la confusion qui règne entre les commandes cvs status et cvs update.
La commande cvs status a deux
objectifs : d'abord, lister pour l'utilisateur les
modifications locales de la version de travail et, ensuite,
indiquer à l'utilisateur quels fichiers ne sont plus à jour.
Malheureusement, en raison de l'affichage peu lisible de la
commande cvs status
, beaucoup
d'utilisateurs de CVS n'utilisent plus cette commande. À la place,
ils ont pris l'habitude de lancer cvs update
ou cvs -n update
pour visualiser leurs
changements rapidement. Si les utilisateurs oublient d'utiliser
l'option -n
, cela a pour effet de bord de
fusionner des changements du dépôt qu'ils ne sont pas forcément
prêts à prendre en compte.
Subversion supprime ce cafouillage en facilitant la lecture de svn status à la fois pour les humains et pour les programmes d'analyse de texte. De plus, svn update n'affiche que les informations relatives aux fichiers qui ont été mis à jour côté dépôt, pas les modifications locales.
La commande svn status liste tous les fichiers qui ont des modifications locales. Par défaut, le dépôt n'est pas contacté. Bien que cette sous-commande accepte un bon nombre d'options, voici les plus utilisées :
-u
contacte le dépôt pour déterminer et lister les informations de mise à jour ;
-v
liste tous les éléments suivis en versions ;
-N
exécution non récursive (ne pas descendre dans les sous-répertoires).
La commande svn status possède deux formats de sortie. Dans le mode « court », mode par défaut, les modifications locales sont présentées comme ceci :
$ svn status M machin.c M truc/bidule.c
Si vous spécifiez l'option --show-updates
(-u
), un format d'affichage plus long sera
utilisé :
$ svn status -u M 1047 machin.c * 1045 tetes.html * dessin.png M 1050 truc/bidule.c État par rapport à la révision 1066
Dans ce cas, deux nouvelles colonnes font leur apparition.
La deuxième colonne contient une astérisque si le fichier ou le
répertoire n'est plus à jour. La troisième colonne contient le
numéro de révision de la copie de travail pour l'élément
considéré. Dans l'exemple précédent, l'astérisque indique que
tetes.html
serait modifié lors d'une mise à
jour et que dessin.png
est un nouveau
fichier dans le dépôt (l'absence d'un numéro de révision pour
dessin.png
indique qu'il n'existe pas dans
la copie de travail locale).
Vous devriez maintenant jeter un œil à la liste des codes d'état possibles de svn status. Voici quelques codes d'état courants que vous rencontrerez :
A L'Ajout de l'élément est planifié D La suppression de l'élément est planifiée M L'élément a été Modifié localement C L'élément est en Conflit (les changements n'ont pas été complètement fusionnés entre la version du dépôt et la version de la copie de travail) X L'élément est eXterne à cette copie de travail (il vient peut-être d'un autre dépôt). Voir la section intitulée « Définition de références externes » ? L'élément n'est pas suivi en versions ! L'élément est manquant ou incomplet (supprimé par un moyen autre que Subversion)
Pour plus de détails sur la commande svn status, consultez la section intitulée « Avoir une vue d'ensemble des changements effectués ».
La commande svn update met à jour votre copie de travail et n'affiche que les informations relatives aux fichiers qui ont été mis à jour.
Subversion combine les codes CVS P
et
U
dans le seul code U
.
Quand une fusion ou un conflit apparaît, Subversion se contente
d'afficher G
ou C
, plutôt
qu'une phrase complète, pour indiquer ce qui se passe.
Pour plus d'informations sur svn update, reportez-vous à la section intitulée « Mettre à jour votre copie de travail ».