This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
La manière la plus évidente d'entrer des données dans Subversion
consiste à ajouter des fichiers sous gestion de versions, propager des
changements sur ces fichiers, etc. Mais d'autres informations
existent dans le dépôt Subversion à côté des données constituées par
les simples fichiers suivis en versions. Certaines de ces informations
— les commentaires de propagation, les commentaires sur les verrous et les
valeurs de certaines propriétés — ont naturellement tendance à être
textuelles et sont explicitement fournies par les utilisateurs. En
général, ces informations peuvent être fournies à Subversion à l'aide
du client texte interactif en utilisant les options
--message
(-m
) et
--file
(-F
) dans le cadre des
sous-commandes appropriées.
Chacune de ces options a des avantages et des inconvénients. Par
exemple, quand vous effectuez une propagation, l'option
--file
(-F
) fonctionne bien si vous
avez déjà préparé un fichier texte qui contient votre commentaire de
propagation. Si vous ne l'avez pas fait, vous pouvez toujours utiliser
l'option --message
(-m
) pour stipuler
votre commentaire en ligne de commande. Malheureusement, composer un
commentaire de plus d'une ligne en ligne de commande peut être assez
délicat. Les utilisateurs veulent plus de flexibilité : ils
veulent pouvoir écrire un commentaire de propagation multi-lignes, sans
contrainte de format et à la demande.
Subversion répond à cette attente en vous permettant de spécifier un éditeur de texte externe qui sera lancé au besoin, vous offrant ainsi un moyen plus puissant pour entrer des méta-données textuelles. Il y a plusieurs manières d'indiquer à Subversion quel éditeur vous voulez utiliser. Subversion vérifie les choses suivantes, dans l'ordre spécifié, avant de lancer un tel éditeur :
l'option en ligne de commande
--editor-cmd
;
la variable d'environnement
SVN_EDITOR
;
l'option de configuration
editor-cmd
;
la variable d'environnement
VISUAL
;
la variable d'environnement
EDITOR
;
éventuellement, une valeur par défaut spécifiée dans une des bibliothèques de Subversion (non présente dans les distributions officielles).
La valeur de n'importe laquelle de ces options ou variables est le début de la ligne de commande qui sera exécutée par le shell. Subversion ajoute à cette ligne de commande une espace et le chemin vers un fichier temporaire à éditer. Ainsi, pour être utilisé avec Subversion, l'éditeur spécifié ou configuré doit pouvoir être appelé avec pour dernier argument de sa ligne de commande le fichier à éditer, il doit être capable de sauvegarder le fichier au même endroit et il doit retourner zéro comme code de retour, pour indiquer la réussite de l'opération.
Comme indiqué, les éditeurs externes peuvent être utilisés pour
fournir les commentaires de propagation à n'importe quelle sous-commande
de propagation (telle que svn commit ou svn
import, svn mkdir ou svn
delete quand vous fournissez une URL cible, etc.) et
Subversion essaie de lancer l'éditeur automatiquement si vous ne
spécifiez ni l'option --message
(-m
)
ni l'option --file
(-F
). La commande
svn propedit est presque entièrement construite
autour de l'utilisation d'un éditeur de texte externe. À partir de la
version 1.5, Subversion utilise également l'éditeur de texte externe
configuré quand l'utilisateur demande le lancement d'un éditeur lors de
la résolution interactive de conflits. Bizarrement, il ne semble pas y
avoir de moyen d'utiliser un éditeur externe pour fournir un
commentaire de verrouillage de manière interactive.