Negeren bestanden en mappen

Afbeelding 4.32. Verkenner context menu voor bestanden zonder versiebeheer

Verkenner context menu voor bestanden zonder versiebeheer


In de meeste projecten zijn er ook bestanden of mappen die je niet onder controle van subversion wilt brengen. Denk bijvoorbeeld aan compiler bestanden, *.obj, *.lst, of output bestanden en backup versies. Als je wijzigingen commit, laat TortoiseSVN jou de bestanden zien die (nog) niet meegenomen zullen worden. Deze kunnen je dialoog box vullen. Natuurlijk je de weergave ervan uitzetten, maar dan zou je belangrijke bestanden kunnen gaan vergeten.

De beste manier om deze problemen te vermijden is om een bestanden en/of extensies aan de negeerlijst toe te voegen. Zo kunnen ze nooit per ongeluk gecommit worden of de weergave in de commit dialog box overvol maken zodat je andere belangrijke bestanden voor versie beheer zou vergeten.

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.

If you choose the (recursively) version of the ignore context menu, the item will be ignored not just for the selected folder but all subfolders as well. However this requires SVN clients version 1.8 or higher.

Wil je items van je negeer-lijst afhalen, selecteer dan die bestanden of mappen, rechts klik op de selectie en kies TortoiseSVNVerwijder van negeer-lijst. Voor mappen kun je ook de svn:ignore eigenschap direct zetten. Daarmee kun je algemene patronen specificeren van te negeren bestanden, zoals hieronder beschreven zal worden. Lees de paragraaf met de naam “Project Instellingen” voor meer informatie over het zetten van eigenschappen op mappen. Let op: iedere negeer-patroon moet op zijn eigen regel komen te staan. Scheiden met spaties werkt niet.

De Globale Negeerlijst

Een andere methode om bestanden te negeren is door ze toe te voegen aan de globale negeer lijst. Het grote verschil is dat de globale negeer lijst een eigenschap van de gebruiker is. Deze lijst wordt toegepast op alle Subversion projecten, maar dan alleen die op de PC van de gebruiker. Over het algemeen is het beter om de svn:ignore eigenschap te gebruiken waar mogelijk, omdat het toegepast kan worden op specifieke project gebieden en het wordt gebruikt bij iedereen die het project ophaalt. Lees de paragraaf met de naam “Algemene instellingen” voor meer informatie.

Negeren van geversioneerde items

Bestanden en mappen die al onder versiebeheer vallen kunnen nooit genegeerd worden. Dat zou subversion tegenspreken. Mocht je een bestand per ongeluk hebben toegevoegd, lees dan de paragraaf met de naam “Negeer bestanden die al opgenomen zijn in het versiebeheer” om dit ongedaan te maken.

Patroonherkenning in negeerlijsten

Subversion's negeer patronen maken gebruik van globbing bij bestandsnamen, een techniek die van origine gebruikt is in Unix om bestanden aan te wijzen met meta-karakters als wildcards. De volgende karakters hebben een speciale betekenis:

*

Matcht elke string van karakters, inclusief de lege string.

?

Matcht elk enkel letterteken.

[...]

Zoekt overeenkomsten met elk van de karakters welke zijn omsloten door blokhaken. Binnen de blokhaken, een karakterpaar gescheiden door - komen overeen met ieder karakter dat lexicaal tussen beide karaters in ligt. Bijvoorbeeld [AGm-p] komt overeen met elk van de karakters A, G, m, n, o of p.

Patroonherkenning is hoofdletter gevoelig, dus let op onder Windows. Je kunt ongevoeligheid voor hoofd- of kleine letters afdwingen door expliciet en uitputtend letterparen te specificeren, bv. om <literal>*.tmp</literal> te negeren gebruik je het patroon <literal>*.[Tt][Mm][Pp]</literal>.

Voor de officiele definitie van globbing, raadpleeg de IEEE specificaties voor de 'shell command language' Pattern Matching Notation.

Geen Paden in de Globale Negeerlijst

Je moet eigenlijk geen paden in je patronen opnemen. Het patroonherkenningsproces is bedoeld om te filteren op platte bestands- en mapnamen. Als je alle CVS mappen wilt negeren, voeg dan allen CVS toe aan de negeer lijst. Het is niet nodig om CVS */CVS te specificeren, zoals je gewend was van eerder versies. Als je alle tmp mappen wilt negeren als ze in een prog map aanwezig zijn, maar niet in een doc map, dan zou je de svn:ignore eigenschap moeten gebruiken. Er is geen betrouwbare manier om dit gedrag te bereiken met globale negeer patronen.