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 messages 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.
La plupart de ces informations peuvent être fournies à Subversion
à l'aide du client en ligne de commande 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
message de propagation. Si vous ne l'avez pas fait, vous pouvez
toujours utiliser l'option --message
(-m
) pour stipuler votre message en ligne de
commande. Malheureusement, composer un message 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 message de propagation multi-ligne, 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 un 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 messages 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.