7.1. Zone de configuration des exécutables
Subversion permet à l'utilisateur de contrôler finement son comportement. Beaucoup d'options ont vocation à s'appliquer à l'ensemble des opérations de Subversion. Ainsi, plutôt que de forcer les utilisateurs à se souvenir d'arguments en ligne de commande pour spécifier ces options et de les utiliser à chaque invocation, Subversion utilise des fichiers de configuration, tenus à l'écart dans une zone de configuration spécifique à Subversion.
La zone de configuration Subversion consiste en une hiérarchie à deux niveaux constituée de noms d'options et de leurs valeurs. Habituellement, cela se traduit par un répertoire dédié qui contient les fichiers de configuration (le premier niveau) : des fichiers texte au format standard INI (dont les « sections » constituent le deuxième niveau). Vous pouvez facilement éditer ces fichiers à l'aide de votre éditeur de texte favori (tel qu'Emacs ou vi). Ils contiennent des directives lues par le client Subversion afin de déterminer le comportement par défaut choisi par l'utilisateur.
7.1.1. Agencement de la zone de configuration
La première fois que le client svn en
ligne de commande est exécuté, il crée une zone de
configuration propre à l'utilisateur. Sur les systèmes de type
Unix, cette zone est un répertoire nommé
.subversion dans le répertoire personnel
de l'utilisateur. Sur les systèmes Windows, Subversion crée un
dossier nommé Subversion, généralement
dans la zone Application Data du
répertoire qui contient le profil de l'utilisateur (qui est
habituellement, au passage, un répertoire caché). Cependant,
sur cette plate-forme, l'emplacement exact du profil
utilisateur varie d'un système à l'autre et est dicté par la
base de registre Windows
[51].
Nous nous référerons à cette zone de configuration propre à
l'utilisateur en utilisant son nom Unix :
.subversion.
En plus de la zone de configuration propre à l'utilisateur,
Subversion reconnaît l'existence d'une zone de configuration
globale pour le système. Cela permet aux administrateurs du
système d'établir une configuration par défaut pour l'ensemble
des utilisateurs d'une machine donnée. Notez que la zone de
configuration globale seule ne fixe pas de politique
définitive : les réglages de l'utilisateur sont
prioritaires par rapport aux réglages globaux et les options
de la ligne de commande ont toujours le dernier mot. Sur les
plate-formes de type Unix, la zone de configuration globale
doit se trouver dans le répertoire
/etc/subversion ; sur les machines
Windows, Subversion cherche un répertoire
Subversion dans le dossier commun
Application Data (là encore, l'endroit
exact dépend de la base de registre Windows). Au contraire de
la zone propre à l'utilisateur, le programme
svn ne tente pas de créer la zone de
configuration globale.
La zone de configuration propre à l'utilisateur contient
actuellement trois fichiers : deux fichiers de
configuration (config et
servers) et un fichier
README.txt qui décrit le format INI. Lors
de leur création, ces fichiers contiennent les valeurs par
défaut de toutes les options supportées par Subversion,
généralement mises en commentaire et groupées avec une
description textuelle de l'effet de la clé sur le
fonctionnement de Subversion. Pour modifier un comportement
précis, il suffit de charger le fichier de configuration dans
un éditeur de texte et de changer la valeur de l'option
correspondante. Si, par la suite, vous voulez rétablir les
valeurs par défaut, vous n'avez qu'à supprimer ou renommer
votre répertoire de configuration puis lancer une commande
svn inoffensive, telle que
svn --version. Un nouveau répertoire
de configuration sera créé, qui contiendra les valeurs par
défaut.
La zone de configuration propre à l'utilisateur contient
également un cache pour les données d'authentification. Le
répertoire auth héberge un ensemble de
sous-répertoires qui contiennent des informations mises en
cache, relatives aux différentes méthodes d'authentification
utilisées par Subversion. Ce répertoire est créé de telle
manière que seul l'utilisateur ait accès à son contenu.
7.1.2. Configuration via la base de registre Windows
En plus de la zone de configuration classique contenant les fichiers INI, les clients Subversion qui tournent sur une plate-forme Windows peuvent aussi utiliser la base de registre Windows pour stocker leurs données de configuration. Les noms des options et leurs valeurs sont les mêmes que dans les fichiers INI. La hiérarchie « fichier/section » est également présente, bien que traitée de manière légèrement différente : dans ce cas, les fichiers et les sections sont juste des niveaux dans l'arborescence des clés de registres.
Subversion cherche les valeurs de configuration
applicables à tout le système sous la clé
HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion.
Par exemple, l'option global-ignores, qui
se trouve dans la section miscellany du
fichier de configuration, est située dans
HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores.
Les valeurs propres à un utilisateur doivent être stockées sous
HKEY_CURRENT_USER\Software\Tigris.org\Subversion.
Les options de configuration de la base de registre sont analysées avant les options des fichiers INI ; elles sont donc supplantées par les valeurs trouvées dans les fichiers de configuration. En d'autres termes, Subversion cherche les options de configuration dans l'ordre suivant sur un système Windows (les plus prioritaires sont citées en premier) :
les options en ligne de commande ;
les fichiers INI propres à l'utilisateur ;
les valeurs de la base de registre propres à l'utilisateur ;
les fichiers INI applicables à l'ensemble du système ;
les valeurs de la base de registre applicables à l'ensemble du système.
Par ailleurs, la base de registre Windows ne supporte pas
vraiment la notion de « mise en commentaire ».
Cependant, Subversion ignorera toute clé dont le nom commence
par le caractère dièse (#). Cela vous
permet de mettre en commentaire efficacement une option
Subversion sans avoir à effacer entièrement la clé de la base
de registre, ce qui simplifie manifestement la procédure de
restauration de l'option.
Le client en ligne de commande svn
n'écrit jamais dans la base de registre et ne tentera pas d'y
créer une zone de configuration par défaut. Vous pouvez créer
les clés dont vous avez besoin en utilisant le programme
REGEDIT. Une autre alternative consiste à
créer un fichier .reg (tel que celui
donné dans l'Exemple 7.1, « Exemple de fichier de modification de la base
de registre (.reg) »)
puis à double-cliquer sur l'icône de ce fichier dans
l'explorateur Windows afin d'appliquer les modifications
à votre base de registre.
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\groups] [HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global] "#http-proxy-host"="" "#http-proxy-port"="" "#http-proxy-username"="" "#http-proxy-password"="" "#http-proxy-exceptions"="" "#http-timeout"="0" "#http-compression"="yes" "#neon-debug-mask"="" "#ssl-authority-files"="" "#ssl-trust-default-ca"="" "#ssl-client-cert-file"="" "#ssl-client-cert-password"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auth] "#store-passwords"="yes" "#store-auth-creds"="yes" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\helpers] "#editor-cmd"="notepad" "#diff-cmd"="" "#diff3-cmd"="" "#diff3-has-program-arg"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\tunnels] [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany] "#global-ignores"="*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store" "#log-encoding"="" "#use-commit-times"="" "#no-unlock"="" "#enable-auto-props"="" [HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auto-props]
Exemple 7.1. Exemple de fichier de modification de la base de registre (.reg)
L'exemple précédent présente le contenu d'un fichier
.reg qui contient quelques unes des
options les plus communément utilisées et leurs valeurs
par défaut. Notez la présence de réglages propres à
l'utilisateur (notamment l'éditeur de texte et le stockage
des mots de passe) ainsi que de réglages applicables à
l'ensemble du système (comme les options relatives au
mandataire réseau). Notez également que toutes les options
sont mises en commentaire. Il ne vous reste qu'à supprimer
le caractère dièse (#) initial des noms
d'options et à leur affecter la valeur que vous
souhaitez.
7.1.3. Options de configuration
Dans cette section, nous allons nous intéresser aux options de configuration des programmes supportées par la version actuelle de Subversion.
Fichier servers
Le fichier servers contient les
options de configuration relatives aux couches réseau. Il
y a deux sections spéciales dans ce fichier :
groups et global.
La section groups n'est rien d'autre
qu'un tableau de références croisées. Les clés de cette
section sont les noms des autres sections du fichier ;
ses valeurs sont des globs (des
représentations textuelles qui peuvent contenir des
caractères joker) qui sont comparés aux noms des machines
auxquelles des requêtes Subversion sont envoyées.
[groups] serveurs-red-beans = *.red-bean.com collabnet = svn.collab.net [serveurs-red-beans] … [collabnet] …
Quand vous utilisez Subversion en réseau, il essaie de
faire correspondre le nom du serveur auquel il tente de se
connecter avec un nom de groupe de la section
groups. Si une correspondance existe,
Subversion vérifie alors s'il existe dans le fichier
servers une section dont le nom est
le nom du groupe correspondant. Le cas échéant, il tire
de cette section la configuration réseau à appliquer.
La section global contient la
configuration à appliquer à tous les serveurs qui ne
correspondent à aucun glob de la section
groups. Les options disponibles dans
cette section sont exactement les mêmes que pour les autres
sections du fichier (exceptée bien sûr la section spéciale
groups) et sont :
http-proxy-exceptionsCette option contient une liste de motifs (séparés par des virgules) de noms de machines qui doivent être contactées directement, sans passer par le mandataire. La syntaxe des motifs est la même que celle utilisée par le shell Unix pour les noms de fichiers. L'accès aux dépôts d'une machine dont le nom correspond à l'un de ces motifs se fera sans passer par un mandataire.
http-proxy-hostCette option contient le nom de la machine mandataire pour les requêtes HTTP de Subversion. La valeur par défaut est vide, ce qui signifie que Subversion ne tentera pas de faire passer ses requêtes par un mandataire mais essaiera de contacter la machine de destination directement.
http-proxy-portCette option contient le numéro du port à utiliser sur la machine mandataire. Par défaut, la valeur est vide.
http-proxy-usernameCette option contient le nom d'utilisateur à fournir à la machine mandataire. Par défaut, la valeur est vide.
http-proxy-passwordcette option contient le mot de passe à fournir à la machine mandataire. Par défaut, la valeur est vide.
http-timeoutCette option contient la durée maximum, en secondes, pendant laquelle Subversion attend la réponse du serveur. Si vous rencontrez des problèmes d'opérations Subversion qui expirent à cause d'une connexion réseau trop lente, vous devez augmenter cette valeur. Par défaut, la valeur est
0, ce qui conduit la bibliothèque HTTP sous-jacente (Neon) à utiliser sa propre valeur par défaut.http-compressionCette option indique si oui ou non Subversion doit essayer de compresser les requêtes réseaux à destination de serveurs DAV. La valeur par défaut est
yes. Notez que la compression ne sera effective que si la couche réseau a été compilée avec le support de la compression. Metteznopour ne pas activer la compression, par exemple lorsque vous analysez les transmissions réseaux.http-librarySubversion est fourni avec deux modules d'accès aux dépôts qui utilisent le protocole réseau WebDAV. Le module originel, fourni avec Subversion 1.0, est
libsvn_ra_neon(bien qu'en ce temps-là, il s'appelaitlibsvn_ra_dav). Les nouvelles versions de Subversion fournissent égalementlibsvn_ra_serf, qui utilise une implémentation sous-jacente différente et qui vise à supporter certains des concepts HTTP les plus récents.Actuellement,
libsvn_ra_serfest toujours considérée en version expérimentale, bien qu'elle semble fonctionner correctement dans les cas usuels. Afin d'inciter les gens à l'essayer, Subversion fournit l'option de configurationhttp-librarypour permettre aux utilisateurs de définir (globalement ou par groupe de serveurs) quel module d'accès WebDAV ils veulent utiliser :neonouserf.http-auth-typesCette option liste les méthodes d'authentification (séparées par des points-virgules) supportées par les module d'accès aux dépôts WebDAV basés sur Neon. Les valeurs valides sont :
basic,digestetnegotiate.neon-debug-maskCette option contient un entier qui représente un masque que la bibliothèque HTTP sous-jacente (Neon) utilise pour choisir quel type d'affichage de débogage autoriser. La valeur par défaut est
0, ce qui interdit tout affichage de débogage. Pour plus d'informations sur l'utilisation de Neon par Subversion, reportez-vous au Chapitre 8, Intégration de Subversion.ssl-authority-filesCette option contient une liste de chemins (séparés par des points-virgules) vers les fichiers contenant les certificats des autorités de certifications (AC) qui doivent être reconnues comme de confiance par le client Subversion lors des accès aux dépôts en HTTPS.
ssl-trust-default-caMettez cette variable à
yessi vous voulez que Subversion fasse automatiquement confiance à l'ensemble des autorités de certification livrées par défaut avec OpenSSL.ssl-client-cert-fileSi un hôte (ou un ensemble d'hôtes) demande un certificat SSL au client, vous serez sollicité pour fournir le chemin de votre certificat. Dès que cette variable contient ce chemin, Subversion sera capable de trouver automatiquement votre certificat et ne vous sollicitera pas. Il n'existe pas d'emplacement standard pour stocker un certificat utilisateur sur le disque ; Subversion va le chercher à l'endroit que vous lui spécifiez.
ssl-client-cert-passwordSi votre certificat client SSL est protégé par une phrase de passe, Subversion vous la demandera à chaque fois que le certificat est utilisé. Si vous trouvez cela pénible (et que cela ne vous dérange pas que cette phrase de passe soit stockée dans le fichier
servers), vous pouvez placer dans cette variable la phrase de passe de votre certificat. Vous ne serez plus sollicité.
Fichier config
Le fichier config contient le reste
des options du programme Subversion disponibles actuellement,
c'est-à-dire celles qui ne se rapportent pas au réseau. Au
moment où ces lignes sont écrites, seules quelques options
sont utilisées, mais elles sont quand même regroupées en
sections en prévision d'ajouts futurs.
La section auth contient les
paramètres relatifs à l'authentification et au contrôle
d'accès de Subversion pour les dépôts. Elle comprend les
options suivantes :
store-passwordsCette option demande à Subversion de garder en cache (ou non) les mots de passe qui sont tapés par l'utilisateur en réponse aux demandes d'authentification des serveurs. La valeur par défaut est
yes. Remplacez cette valeur parnopour désactiver la mise en cache sur le disque. Vous pouvez outrepasser cette option pour un appel donné d'une commandesvnen utilisant l'option de ligne de commande--no-auth-cache(pour les sous-commandes qui acceptent cette option). Pour plus d'informations, consultez Section 3.11.2, « Mise en cache des éléments d'authentification du client ».store-auth-credscette option est équivalente à
store-passwordssauf qu'elle applique la mise en cache sur le disque (ou non) à l'ensemble des informations d'authentification : identifiants, mots de passe, certificats serveur et tout autre type d'élément pouvant être mis en cache.
La section helpers définit quelles
sont les applications externes utilisées par Subversion pour
accomplir ses tâches. Les options valides dans cette section
sont :
editor-cmdCette option indique le programme utilisé par l'utilisateur auquel Subversion demande d'entrer des méta-données textuelles ou de résoudre les conflits de manière interactive. Consultez Section 7.3, « Utilisation d'éditeurs externes » pour plus de détails sur l'utilisation d'un éditeur de texte externe avec Subversion.
diff-cmdCette option contient le chemin absolu du programme de comparaison qui est utilisé lorsque Subversion doit afficher à l'utilisateur plusieurs fichiers à comparer (par exemple lors de l'utilisation de la commande
svn diff). Par défaut, Subversion utilise une bibliothèque interne de comparaison. Définir cette option le forcera à utiliser un programme externe pour effectuer cette tâche. Consultez Section 7.4, « Utilisation des outils externes de comparaison et de fusion » pour plus de détails sur l'utilisation de tels programmes.diff3-cmdCette option contient le chemin absolu d'un programme de comparaison à trois entrées. Subversion utilise ce programme pour fusionner les changements effectués par l'utilisateur avec ceux en provenance du dépôt. Par défaut, Subversion utilise une bibliothèque interne de comparaison. Définir cette option le forcera à utiliser un programme externe pour effectuer cette tâche. Consultez Section 7.4, « Utilisation des outils externes de comparaison et de fusion » pour plus de détails sur l'utilisation de tels programmes.
diff3-has-program-argCe drapeau doit être mis à
truesi le programme spécifié par l'optiondiff3-cmdaccepte l'option--diff-programen ligne de commande.merge-tool-cmdCette option contient le programme que Subversion utilise pour effectuer les opérations de fusion à trois sources sur vos fichiers suivis en versions. Consultez Section 7.4, « Utilisation des outils externes de comparaison et de fusion » pour plus de détails sur l'utilisation de tels programmes.
La section tunnels vous permet de
définir de nouveaux tunnels à utiliser avec les connexions
clientes svnserve et
svn://. Pour plus de détails, consultez
Section 6.3.4, « Encapsulation de svnserve dans un tunnel SSH ».
La section miscellany récolte tout
ce qui n'a pas sa place ailleurs
[52]
Dans cette section, vous trouvez :
global-ignoresQuand vous exécutez la commande
svn status, Subversion affiche la liste des fichiers et répertoires non suivis en versions avec ceux qui sont suivis en versions, en les marquant d'un caractère?(voir la section intitulée « Avoir une vue d'ensemble des changements effectués »). Parfois, ces éléments inutiles et non suivis en version ne font que rendre l'affichage plus confus, par exemple dans le cas des fichiers objets générés par les compilations. L'optionglobal-ignorescontient une liste de globs séparés par des espaces qui décrivent les noms de fichiers et de répertoires que Subversion ne doit pas afficher, sauf s'ils sont suivis en versions. La valeur par défaut est*.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store.Tout comme
svn status, les commandessvn addetsvn importignorent les fichiers qui entrent en correspondance avec la liste lors du parcours d'un répertoire. Vous pouvez bloquer ce comportement pour une instance donnée de ces commandes en spécifiant explicitement le nom de fichier ou en utilisant l'option--no-ignoreen ligne de commande.Vous pouvez trouvez des informations pour contrôler plus finement les éléments ignorés dans Section 3.4, « Occultation des éléments non suivis en versions ».
enable-auto-propsCette option demande à Subversion d'ajouter automatiquement des propriétés sur les fichiers nouvellement ajoutés ou importés. La valeur par défaut est
no, vous devez donc lui affecter la valeuryespour activer cette fonctionnalité. La sectionauto-propsde ce fichier spécifie quelles propriétés doivent être définies sur quels fichiers.log-encodingCette option définit la valeur par défaut du codage des caractères des messages de propagation. C'est le pendant permanent de l'option
--encoding(voir Section 9.1.1, « Options de svn »). Le dépôt Subversion stocke les messages de propagation en UTF-8 et suppose que votre message est écrit en utilisant le codage défini par votre système d'exploitation. Vous devez spécifier un codage différent si vos messages de propagation sont rédigés avec un autre codage.use-commit-timesNormalement, les fichiers de votre copie de travail sont datés de manière à indiquer la dernière fois qu'ils ont été manipulés par n'importe quel processus, que ce soit votre éditeur de texte ou une sous-commande
svn. C'est le comportement attendu généralement par les développeurs de logiciels, puisque les systèmes de compilation examinent souvent ces dates pour décider quels fichiers doivent être recompilés.Dans d'autres situations, cependant, il est préférable d'avoir une date qui indique la dernière fois que le fichier a été modifié dans le dépôt. La commande
svn exportmarque « la date de la dernière propagation » sur les arborescences qu'elle produit. En mettant cette variable de configuration àyes, les commandessvn checkout,svn update,svn switchetsvn revertmarqueront également les fichiers qu'elles modifient avec la date de dernière propagation.mime-types-fileCette option est apparue dans Subversion 1.5. Elle spécifie le chemin d'un fichier de correspondance pour les types MIME, de la même manière que le fichier
mime.typesfourni par le serveur HTTP Apache. Subversion utilise ce fichier pour associer des types MIME aux nouveaux fichiers ajoutés ou importés. Consultez Section 3.2.4, « Configuration automatique des propriétés » et Section 3.3.1, « Type de contenu des fichiers » pour plus d'informations sur la détection et l'utilisation des types de fichiers par Subversion.preserved-conflict-file-extsLa valeur de cette option est une liste d'extensions de fichiers (séparées par des espaces) que Subversion doit préserver quand il génère des noms de fichiers lors des conflits. Par défaut, cette liste est vide. C'est une nouvelle option apparue dans Subversion 1.5.
Quand Subversion détecte des conflits dans les modifications effectuées sur un fichier, il soumet la résolution de ces conflits à l'utilisateur. Pour aider l'utilisateur à les résoudre, Subversion garde une copie originale des différentes versions en lice du fichier dans la copie de travail. Par défaut, ces fichiers ont des noms construits en ajoutant au nom de fichier original une extension particulière telle que
.mineou.REV(oùREVest un numéro de révision). Ceci peut être gênant sur les systèmes d'exploitation qui utilisent les extensions de noms de fichiers pour déterminer l'application par défaut à utiliser pour ouvrir et éditer le fichier, le fichier avec la nouvelle extension n'étant plus automatiquement ouvert dans l'application prévue. Par exemple, si le fichierNotesDeVersion.pdfest en conflit, les fichiers générés risquent de s'appelerNotesDeVersion.pdf.mineouNotesDeVersion.pdf.r4231. Bien que votre système soit peut-être configuré pour ouvrir les fichiers.pdfave Acrobat Reader, il n'existe sûrement pas d'application préconfigurée pour ouvrir les fichiers avec l'extension.r4231.Vous pouvez arranger cela en utilisant cette option de configuration. Pour les fichiers dont l'extension est spécifiée, Subversion ajoutera au nom des fichiers générés l'extension particulière liée au conflit, mais il rajoutera aussi à la suite l'extension originale. Dans l'exemple précédent, en supposant que
pdfest une des extensions configurée dans la liste ci-dessus, les noms des fichiers générés pourNotesDeVersion.pdfvont êtreNotesDeVersion.pdf.mine.pdfetNotesDeVersion.pdf.r4231.pdf. Comme chaque fichier se termine par.pdf, l'application appropriée sera utilisée pour les visualiser.interactive-conflictsCette option est une option booléenne qui indique si Subversion doit essayer de résoudre les conflits de manière interactive. Si la valeur est
yes(qui est la valeur par défaut), Subversion demandera à l'utilisateur comment gérer les conflits, comme indiqué dans Section 2.4.5, « Résoudre les conflits (fusionner des modifications) ». Autrement, il marquera simplement qu'il existe un conflit et continuera l'opération en cours, remettant sa résolution à plus tard.no-unlockCette option booléenne correspond à l'option
--no-unlockdesvn commit. Elle indique à Subversion de ne pas libérer les verrous posés sur les fichiers que vous venez de propager. Si cette option est positionnée àyes, Subversion ne libérera jamais aucun verrou automatiquement, vous laissant le faire explicitement avecsvn unlock. La valeur par défaut estno.
La section auto-props contrôle la
possibilité par le client Subversion de positionner
automatiquement certaines propriétés sur les fichiers qui
sont ajoutés ou importés. Elle contient un nombre arbitraire
de paires clé-valeur au format MOTIF =
NOM_PROPRIETE=VALEUR[;NOM_PROPRIETE=VALEUR ...],
où MOTIF est un motif de nom de fichier
qui correspond à un ou plusieurs noms de fichiers et le
reste de la ligne est une liste d'affectations (séparées
par des points-virgules) de valeurs à des propriétés. Si
un nom de fichier correspond à plusieurs motifs, autant de
propriétés seront positionnées ; cependant, il n'y a
aucune garantie que les auto-props seront appliquées dans
l'ordre dans lequel elles apparaissent dans le fichier
config ; il ne faut donc pas
définir de règles susceptibles d'en écraser d'autres. Vous
pouvez trouver de nombreux exemples d'utilisation
d'auto-props dans le fichier config.
Enfin, n'oubliez pas de positionner
enable-auto-props à yes
dans la section miscellany si vous voulez
activer auto-props.
- n
- Next Page
- p
- Previos Page
- h
- Book Home
- u
- Go Up One Level
- ?
- Press ? for Help
- esc
- Hide Help
Press '?' for keyboard shortcuts