Dans la plupart des projets, il y aura des fichiers et des dossiers qui ne devraient pas être en gestion de version. Par exemple, il peut s'agir de fichiers créés par le compilateur, *.obj, *.lst
, peut-être un dossier de destination qui va recevoir l'exécutable. Chaque fois que vous livrez des changements, TSVN vous montre vos fichiers non versionnés, ce qui encombre la liste des fichiers dans la boîte de dialogue de livraison. Vous pouvez bien sûr désactiver cet affichage, mais vous pourriez alors oublier d'ajouter un nouveau fichier source.
La meilleure façon d'éviter ces problèmes est d'ajouter les fichiers générés à la liste des ignorés du projet. De cette manière, ils ne s'afficheront jamais dans la fenêtre de livraison, mais les vrais fichiers source non versionnés seront toujours signalés.
Si vous faites un clic droit sur un fichier non versionné, et que vous sélectionnez la commande → dans le menu contextuel, un sous-menu apparaît pour vous permettre de sélectionner uniquement ce fichier, ou tous les fichiers avec la même extension. Les deux éléments ont aussi chacun un élément
Si vous choisissez la version (récursivement)
de la commande du menu contextuel, l'élément sera ignoré non seulement pour le dossier sélectionné mais également pour tous les sous-dossiers. Cependant, cela nécessite la version 1.8 ou supérieure du client SVN.
Si vous voulez supprimer un ou plusieurs éléments de la liste des ignorés, faites un clic droit sur ces éléments et sélectionnez → Vous pouvez aussi accéder directement à la propriété svn:ignore
d'un dossier. Cela vous permet de spécifier des modèles plus généraux en utilisant des jokers, comme décrit dans la section ci-dessous. Lisez la section intitulée « Configuration des projets » pour plus d'informations sur la définition directe des propriétés. Notez qu'il faut placer une règle de filtrage par ligne. Les séparer avec des espaces ne fonctionne pas.
Une autre façon d'ignorer des fichiers est de les ajouter à la liste des ignorés globale. La grande différence ici, c'est que la liste des ignorés globale est une propriété client. Elle s'applique à tous les projets Subversion, mais sur le PC client uniquement. En général, c'est mieux d'utiliser la propriété svn:ignore
où c'est possible, parce qu'elle peut être appliquée à des secteurs spécifiques du projet et elle fonctionne pour tous ceux qui extraient le projet. Lisez la section intitulée « Configuration générale » pour plus d'informations.
Les fichiers et les répertoires versionnés ne peuvent jamais être ignorés - c'est une fonctionnalité de Subversion. Si vous avez versionné un fichier par erreur, lisez la section intitulée « Ignorer les fichiers déjà versionnés » pour savoir comment le « déversionner ».
Les modèles d'exclusion de Subversion se servent de l'expansion des jokers (globbing) dans les noms de fichier, une technique à l'origine utilisée sous Unix pour spécifier des fichiers utilisant des méta-caractères comme caractères de remplacement. Les caractères suivants ont une signification spéciale :
Correspond à n'importe quelle chaîne de caractères (de 0 à n caractères), y compris la chaîne vide (aucun caractère).
Correspond à n'importe quel caractère.
Correspond à n'importe lequel des caractères inclus dans les crochets. Dans les crochets, une paire de caractères séparés par « - » correspond à n'importe quel caractère lexicalement entre les deux. Par exemple [AGm-p]
correspond à A
, G
, m
, n
, o
ou p
.
La correspondance avec des modèles est sensible à la casse, ce qui peut causer des problèmes sous Windows. Vous pouvez forcer l'insensibilité à la casse à la dure en appariant les caractères. Par exemple, pour ignorer *.tmp
quelle que soit la casse, vous pouvez utiliser un modèle comme *.[Tt][Mm][Pp]
.
Si vous voulez une définition officielle pour l'expansion de jokers (globbing), vous pouvez la trouver dans les spécifications IEEE pour le langage de commande d'interpréteur de commandes Pattern Matching Notation.
Vous ne devez pas inclure de chemin d'accès dans vos modèles. La correspondance avec les modèles est faite pour être utilisée à la place des noms de fichier ou de dossier. Si vous souhaitez ignorer tous les dossiers CVS
, ajoutez juste CVS
à la liste des ignorés. Il n'est pas nécessaire de spécifier CVS */CVS
comme vous le faisiez dans les versions antérieures. Si vous souhaitez ignorer tous les répertoires tmp
lorsqu'ils sont dans un répertoire prog
mais pas quand ils sont dans un répertoire doc
vous devez utiliser la propriété svn:ignore
à la place. Il n'y a pas de manière fiable d'avoir ce type de règle de filtrage avec les modèles.