Manuals

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 Ignorierliste 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 Ignorierliste entfernen wollen, machen Sie einen Rechtsklick und wählen Sie TortoiseSVNAus Ignorierliste 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 Ignorierliste

Eine weitere Möglichkeit, Dateien zu ignorieren, ist, diese in die globale Ignorierliste 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 gültig ist, der das Projekt auscheckt. 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 Ignorierliste

Die Ausschluss-Muster von Subversion verwenden Platzhalter, eine ursprünglich aus der Unix-Welt stammende Technik, 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 Ignorierliste

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 Ignorierliste hinzu. Es ist nicht nötig, wie in älteren Versionen CVS */CVS anzugeben. Wenn Sie alle tmp-Ordner 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.

TortoiseSVN homepage