In most projects you will have files and folders that should not be subject to version control. These might include files created by the compiler, *.obj, *.lst, maybe an output folder used to store the executable. Whenever you commit changes, TortoiseSVN shows your unversioned files, which fills up the file list in the commit dialog. Of course you can turn off this display, but then you might forget to add a new source file.
La meilleure façon d'éviter ces problèmes est d'ajouter les fichiers dérivés à la liste des ignorés du projet. De cette manière, ils ne s'afficheront jamais dans la boîte de dialogue Livrer, mais les vrais fichiers source non versionnés seront toujours marqués.
Si vous faites un clic droit sur un seul fichier non versionné et sélectionnez la commande → à partir du menu contextuel, un sous-menu apparaît vous permettant de ne choisir que ce fichier, ou tous les fichiers avec la même extension. Si vous sélectionnez plusieurs fichiers, il n'y a pas de sous-menu et vous pouvez seulement ajouter ces fichiers/dossiers spécifiques.
If you want to remove one or more items from the ignore list, right click on those items and select → You can also access a folder's svn:ignore property directly. That allows you to specify more general patterns using filename globbing, described in the section below. Read la section intitulée « Configuration des projets » for more information on setting properties directly. Please be aware that each ignore pattern has to be placed on a separate line. Separating them by spaces does not work.
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, 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.
Subversion uses the / as the path delimiter in all internal pathnames, and all pattern matching is done against this style of path names. If you want to use a path delimiter in your ignore pattern, be sure to use /, and not the Windows backslash.
La correspondance des modèles est sensible à la casse, ce qui peut causer des problèmes sous Windows. Vous pouvez forcer la non sensibilité à la casse en dur en appareillant des caractères, par exemple pour ignorer *.tmp indépendamment de la casse, vous pourriez utiliser un modèle comme *.[Tt][Mm][Pp].
Subversion uses this pattern matching against every path presented to it for action. These paths are generally relative to the directory being acted upon for import, add, commit, etc. The matching pattern therefore has to take account of the fact that there may or may not be path components before the filename.
If directory names are present in a path, the matching algorithm will not trim them off, so pattern Fred.* will match Fred.c but not subdir/Fred.c. This is significant if you add a folder which contains some files that you want to be ignored, because those filenames will be preceded with the folder name when Subversion compares them with the ignore pattern.
The / character is not treated in any special way for pattern matching purposes, so the pattern abc*xyz would match abcdxyz but also abcdir/subdir/anything/morexyz.
To ignore all CVS folders you should either specify a pattern of *CVS or better, the pair CVS */CVS. The first option works, but would also exclude something called ThisIsNotCVS. Using */CVS alone will not work on an immediate child CVS folder, and CVS alone will not work on sub-folders.
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.