Ignorieren von Dateien und Ordnern

Abbildung 4.33. Explorer Kontextmenü für nicht versionierte Dateien

Explorer Kontextmenü für nicht versionierte Dateien


In den meisten Projekten werden Sie Dateien und Ordner haben, die nicht der Versionskontrolle unterstellt sein sollen. Dabei kann es sich um compilergenerierte Dateien *.obj, *.lst oder um einen Ausgabeordner für die ausführbaren Dateien handeln. Jedes Mal, wenn Sie Änderungen zum Projektarchiv übertragen, zeigt Ihnen TortoiseSVN nicht versionierte Dateien, die die Liste im Übertragen-Dialog füllen. Sie könnten natürlich die Anzeige der nicht versionierten Dateien abschalten aber dann übersehen Sie eventuell eine neue Datei, die Sie eigentlich zur Versionskontrolle hinzufügen wollten.

Die beste Möglichkeit diese Probleme zu vermeiden besteht darin, die generierten Dateien zur Ignorieren-Liste des Projekts hinzuzufügen. Auf diese Weise werden sie im Übertragen-Dialog niemals auftauchen, wogegen Quelldateien weiterhin angezeigt werden.

Wenn Sie mit der rechten Maustaste auf eine einzelne, nicht versionierte Datei klicken und TortoiseSVNIgnorieren aus dem Kontextmenü wählen, wird Ihnen ein Untermenü angezeigt, das Ihnen erlaubt, nur diese Datei oder alle Dateien mit dieser Endung zu ignorieren. Beide Untermenüs haben auch ein (rekursives) Äquivalent. Wenn Sie mehrere Elemente wählen, erscheint kein Untermenü und es werden genau diese Dateien / Ordner zur Ignorieren-Liste hinzugefügt.

Wenn Sie die (rekursive) Version des ignorieren Kontextmenüs gewählt haben, wird das Objekt nicht nur für den gewählten Ordner, sondern auch für alle seine Unterordner ignoriert. Dies erfordert jedoch SVN Clients von Version 1.8 an aufwärts.

Wenn Sie einen oder mehrere Einträge aus der Ignorieren Liste entfernen wollen, machen Sie einen Rechtsklick und wählen Sie TortoiseSVNAus Ignorieren Liste entfernen. Sie können auch die svn:ignore Eigenschaft des Ordners direkt bearbeiten. Dies ermöglicht Ihnen, wie im folgenden Abschnitt beschrieben, mittels Platzhalterzeichen allgemeinere Definitionen vorzunehmen. Lesen Sie „Projekt-Einstellungen“ für weitere Information darüber, wie man Eigenschaften direkt setzt. Bitte beachten Sie, dass jeder Eintrag auf einer eigenen Zeile stehen muss. Es genügt nicht, die Einträge durch Leerzeichen zu trennen.

Die globale ignorieren Liste

Eine weitere Möglichkeit Dateien zu ignorieren ist, diese in die globale ignorieren Liste einzutragen. Der große Unterschied besteht darin, dass die globale Liste eine Client Eigenschaft ist. Sie gilt für alle Subversion Projekte, aber nur auf dem jeweiligen Anwender PC. Im allgemeinen ist es besser, die svn:ignore Eigenschaft zu verwenden, weil diese für einzelne Projektbereiche gesetzt werden kann und weil sie für jeden, der das Projekt auscheckt, gültig ist. Lesen Sie „Allgemeine Einstellungen“ für weitere Information.

Versionierte Objekte ignorieren

Versionierte Dateien und Ordner können niemals ignoriert werden - das ist eine Eigenschaft von Subversion. Wenn Sie versehentlich eine Datei zur Versionskontrolle hinzugefügt haben, lesen Sie „Dateien ignorieren, die bereits unter Versionskontrolle sind“, um zu erfahren, wie Sie das rückgängig machen können.

Platzhalter in der Ignorieren-Liste

Die Ausschluss-Muster von Subversion verwenden Platzhalter, eine Technik die ursprünglich aus der Unix Welt stammt, um Dateien oder Ordner zu spezifizieren. Folgende Zeichen haben eine besondere Bedeutung:

*

Steht für eine beliebige (auch leere) Zeichenfolge.

?

Steht für ein beliebiges einzelnes Zeichen.

[...]

Steht für eines der Zeichen innerhalb der eckigen Klammern. Zwei durch - getrennte Zeichen innerhalb der Klammern stehen für alle Zeichen innerhalb dieses Bereichs. Zum Beispiel steht [AGm-p] für A, G, m, n, o oder p.

Die Platzhaltersuche beachtet Groß-/Kleinschreibung, was unter Windows zu Problemen führen kann. Sie können auf die harte Tour erzwingen, dass Groß-/Kleinschreibung ignoriert wird, indem Sie Buchstabenpaare angeben Um z.B. *.tmp auszuschließen *.[Tt][Mm][Pp].

Eine offizielle Definition für Platzhalterzeichen findet sich in der IEEE für die Shell Command Language im Abschnitt Pattern Matching Notation.

Keine Pfade in der globalen ignorieren Liste

Sie sollten keine Pfadinformationen in die Muster einschließen. Der Algorithmus vergleicht mit reinen Datei- oder Ordnernamen. Wenn Sie alle CVS Ordner ignorieren wollen, fügen Sie einfach CVS zur ignorieren Liste hinzu. Es ist nicht nötig, wie in älteren Versionen, CVS */CVS anzugeben. Wenn Sie alle tmp Verzeichnise in einem prog Ordner, aber nicht in einem doc Ordner ignorieren wollen, sollten Sie die svn:ignore Eigenschaft des Ordners verwenden. Es gibt keinen zuverlässigen Weg, dies durch globale Ignoriermuster zu erreichen.