Ignorer des fichiers et des répertoires

Figure 4.32. Menu contextuel de l'explorateur pour les fichiers non versionnés

Menu contextuel de l'explorateur pour les fichiers non versionnés


Dans la plupart des projets vous aurez des fichiers et des dossiers qui n'auront pas à être sous contrôle de version. Par exemple, les fichiers de compilation, *.obj, *.lst, peut-être un dossier destiné à recevoir l'exécutable. Chaque fois que vous livrez des changements, TSVN vous montre les fichiers non versionnés, encombrant la liste des fichiers dans la fenêtre de livraison. Vous pouvez bine 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 à 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 le seront toujours.

If you right click on a single unversioned file, and select the command TortoiseSVNAdd to Ignore List from the context menu, a submenu appears allowing you to select just that file, or all files with the same extension. Both submenus also have a (recursively) equivalent. If you select multiple files, there is no submenu and you can only add those specific files/folders.

Si vous choisissez la version (récursive) du menu contextuel d'ignorer, l'item 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 TortoiseSVNRetirer de la liste des ignorés Vous pouvez aussi directement accéder à 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, 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 une règle de filtrage par ligne. Les séparer d'un espace ne fonctinone pas.

La liste des ignorés globale

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.

Ignorer les éléments versionnés

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 ».

L'utilisation des pattern matching dans la liste des fichier à ignorer

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.

Pattern matching is case sensitive, which can cause problems on Windows. You can force case insensitivity the hard way by pairing characters, e.g. to ignore *.tmp regardless of case, you could use a pattern like *.[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.

Pas de Chemins dans la Liste des Fichiers Ignorés

Vous ne devez pas inclure de chemin d'accès dans vos patterns. Le pattern matching a pour vocation d'être utilisé à la place des noms de fichiers ou de répertoire. Si vous souhaitez ignorer tous les répertoires CVS, ajoutez juste CVS à la liste des ignorés. Il n'y a pas besoin 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 sûre d'avoir ce type de règle de filtrage.