Manchmal ist es notwendig, detailliertere Informationen über eine Datei oder einen Ordner zu haben als dies mit den überlagerten Symbolen möglich ist. Sie können diese zusätzlichen Informationen über den Eigenschaftsdialog des Explorers anzeigen. Wählen Sie dazu die Datei oder den Ordner aus, öffnen Sie das Kontextmenü mit der rechten Maustaste und wählen Sie den Eintrag → aus. (Beachten Sie: dies ist der normale Eintrag im Kontextmenü des Explorers und nicht der Eintrag im TortoiseSVN Untermenü!). Im darauf folgenden Dialog hat TortoiseSVN einen Karteireiter für Dateien/Ordner unter Subversionkontrolle angelegt, auf dem Sie alle Informationen finden.
Sie können die Subversion Eigenschaften sowohl im Windows Eigenschaftendialog als auch im Kontextmenü mit → und in Statuslisten mit → anzeigen und verändern.
Sie können Ihre eigenen Eigenschaften oder Subversion Eigenschaften hinzufügen. Diese beginnen alle mit svn:. svn:externals ist solch eine Eigenschaft. Sehen Sie sich „Externe Objekte“ an, um mehr über das Thema zu erfahren.
Subversion unterstützt eine CVS-ähnliche Expansion von Schlüsselwörtern, die dazu genutzt werden kann, Dateinamen und Revisionsinformationen in der Datei selbst einzubetten. Die derzeit unterstützten Schlüsselwörter sind:
Datum der letzten bekannten Übertragung. Dieses Datum hängt von der Information ab, die bei der letzten Aktualisierung der Arbeitskopie erhalten wurde. Es wird nicht das Projektarchiv auf neuere Änderungen abgefragt.
Revision der letzten bekannten Übertragung.
Autor der letzten bekannten Übertragung.
Die vollständige URL der Datei im Projektarchiv.
Eine komprimierte Version der vorherigen drei Schlüsselwörter
Um mehr über diese Schlüsselwörter herauszufinden, lesen Sie den Abschnitt svn:keywords im Subversion Buch, in dem die Schlüsselwörter und ihre Anwendung im Detail beschrieben werden.
Um mehr Informationen über Eigenschaften in Subversion zu erhalten, schauen Sie sich das entsprechende Kapitel Special Properties im Subversion Buch an.
Um eine Eigenschaft hinzuzufügen, klicken Sie zunächst auf Neu.... Wählen Sie den Eigenschaftsnamen aus der Kombinationsliste oder geben Sie einen eigenen Namen ein und tragen Sie den gewünschten Wert in das darunter stehende Feld ein. Für Eigenschaften, die mehrere Werte akzeptieren z.B. svn:ignore, svn:externals geben Sie einfach mehrere Zeilen ein. Klicken Sie auf , um die Eigenschaft zur Liste hinzuzufügen.
Wenn Sie eine Eigenschaft für mehrere Objekte gleichzeitig setzen wollen, markieren Sie die Dateien / Ordner im Explorer und wählen Sie → .
Wenn Sie die Eigenschaft rekursiv für alle Dateien und Ordner unterhalb des aktuellen Ordners setzen wollen, wählen Sie die Rekursiv Option.
Manche Eigenschaften, wie z.B. svn:needs-lock, können nur für Dateien gesetzt werden. Deshalb sind diese Eigenschaften nicht in der Kombinationsliste für Ordner aufgeführt. Sie können solche Eigenschaften trotzdem rekursiv auf alle Dateien in einer Ordnerstruktur setzen, müssen aber den Eigenschaftsnamen selbst eingeben.
Um eine Eigenschaft zu verändern, wählen sie die Eigenschaft in der Liste der existierenden Eigenschaften aus und klicken dann auf .
Um eine Eigenschaft zu löschen, wählen Sie die Eigenschaft zunächst aus der Liste aus. Klicken Sie anschließend auf .
Die svn:externals Eigenschaft kann genutzt werden, um andere Projekte aus dem gleichen oder einem anderen Projektarchiv in die Arbeitskopie einzubinden. Weitere Informationen finden sich in „Externe Objekte“.
Häufig werden Sie wieder und wieder die gleichen Eigenschaften setzen, z.B. bugtraq:logregex. Um diesen Prozess zu vereinfachen und Eigenschaften von einem Projekt in ein anderes kopieren zu können, steht Ihnen die Export/Import Funktion zur Verfügung.
Ausgehend von der Datei bzw. dem Ordner, für die die Eigenschaften bereits gesetzt sind, wählen Sie → , markieren die Eigenschaften, die Sie exportieren möchten und klicken auf . Sie können anschließend eine Datei angeben, in der die Eigenschaften gespeichert werden.
Ausgehend von den Ordnern, die die Eigenschaften erhalten sollen, wählen Sie → und klicken auf . Über einen Dateiauswahldialog können Sie die gewünschte Datei angeben. Die importierten Eigenschaften werden nicht-rekursiv zu den Ordnern hinzugefügt.
Wenn sie Eigenschaften rekursiv hinzufügen möchten, folgen Sie den oben stehenden Schritten. Markieren Sie nacheinander die Eigenschaften im Dialog klicken Sie auf und aktivieren Sie die Eigenschaften rekursiv anwenden Option und bestätigen mit .
Das Importformat ist binär und spezifisch für TortoiseSVN. Sein einziger Zweck besteht darin, Eigenschaften per Import/Export zu übertragen. Deshalb besteht kein Grund, die Dateien zu bearbeiten.
TortoiseSVN kann binäre Eigenschaften mittels Dateien handhaben. Um einen binären Eigenschaftswert zu lesen, müssen sie diesen in eine Datei . Um eine binäre Eigenschaft zu setzen, benutzen sie einen Hex-Editor oder ein anderes Programm, um eine Datei mit dem binären Inhalt zu erstellen, dann Sie diese aus der Datei.
Obwohl binäre Eigenschaften nicht häufig verwendet werden, sind sie doch in manchen Fällen nützlich. Sie können zum Beispiel die Vorschau einer großen Grafikdatei als binäre Eigenschaft in Subversion speichern, um sich schnell einen Eindruck des Bildes verschaffen zu können.
Sie können Subversion so einrichten, dass Eigenschaften für Dateien und Ordner automatisch gesetzt werden, wenn Sie zum Projektarchiv hinzugefügt werden. Es gibt zwei verschiedene Wege dazu.
Sie können die Subversion Konfigurationsdatei bearbeiten, um diese Funktion auf dem Client zu aktivieren. Auf der Allgemein Seite der TortoiseSVN Einstellungen findet sich eine Bearbeiten Schaltfläche, die Sie direkt dort hinbringt. Die Konfigurationsdatei mit der einige Subversion Verhaltensweisen festgelegt werden ist eine einfache Textdatei. Sie müssen darin zwei Dinge ändern. Erstens müssen Sie in der miscellany Sektion die Zeile enable-auto-props = yes auskommentieren. Zweitens müssen Sie in dem darunterstehenden Bereich festlegen, welche Eigenschaften zu welchen Dateitypen hinzugefügt werden sollen. Dabei handelt es sich um eine Subversion Standardfunktion, die in jedem Subversion Client funktioniert. Allerdings müssen die Einstellungen auf jedem Computer vorgenommen werden. Es gibt keine Möglichkeit die Einstellungen über das Projektarchiv zu verbreiten.
Eine alternative Methode ist, die tsvn:autoprops Eigenschaft, wie im nächsten Abschnitt beschrieben, auf Ordner zu setzen. Diese Methode funktioniert nur mit TortoiseSVN clients, dafür wird die Eigenschaft beim Aktualisieren in alle Arbeitskopien verteilt.
Egal welche Methode Sie wählen, Sie sollten wissen, dass auto-props nur beim Hinzufügen von Dateien zum Projektarchiv gesetzt werden. Es werden niemals die Eigenschaften von Dateien gesetzt oder geändert, die bereits versioniert sind.
Wenn Sie ganz sicher sein wollen, dass neue Dateien die korrekten Eigenschaften erhalten, sollten Sie eine pre-commit Aktion im Projektarchiv einrichten, die Übertragungen verwirft, wenn die erforderlichen Eigenschaften nicht gesetzt sind.
Subversion Eigenschaften sind auch unter Versionskontrolle. Nachdem Sie eine Eigenschaft geändert haben, müssen Sie die Änderungen zum Projektarchiv übertragen.
Sollte es beim Übertragen zum Server zu einem Konflikt kommen, weil ein anderer Benutzer die gleiche Eigenschaft geändert hat, generiert Subversion eine .prej Datei. Löschen Sie diese Datei, nachdem Sie den Konflikt aufgelöst haben.
TortoiseSVN besitzt ein paar eigene spezielle Eigenschaften, die mit tsvn: beginnen.
tsvn:logminsize Setzt die minimale Länge einer Logmeldung für eine Übertragung. Wenn Sie eine Logmeldung eingeben welche kürzer ist als mit dieser Eigenschaft festgelegt, dann bleibt die Übertragung deaktiviert. Dies ist nützlich wenn Sie die Benutzer dazu anhalten möchten, für jede Übertragung eine gute Logmeldung zu schreiben. Wenn diese Eigenschaft nicht gesetzt ist, sind leere Logmeldungen erlaubt.
tsvn:lockminsize Setzt die minimale Länge einer Sperrmeldung. Wenn Sie eine Meldung eingeben, die kürzer ist als mit dieser Eigenschaft festgelegt, dann bleibt die Sperrung deaktiviert. Dies ist nützlich, wenn Sie die Benutzer dazu anhalten möchten, für jede Sperrung eine Beschreibung anzugeben. Wenn diese Eigenschaft nicht gesetzt ist, sind leere Sperrmeldungen erlaubt.
tsvn:logwidthmarker kann für Projekte benutzt werden, welche Logmeldungen mit einer maximalen Zeilenlänge (typischerweise 80 Zeichen) haben möchten. Wenn diese Eigenschaft auf einen Wert ungleich 0 gesetzt wird, wird einerseits der Wortumbruch für die Logmeldung abgeschaltet und andererseits eine vertikale Linie gezeichnet um die maximale Zeilenlänge anzuzeigen. Auf diese Weise können Sie jederzeit sehen, ob Ihre Logmeldung die maximale Zeilenlänge schon überschreitet oder nicht. Beachten Sie, dass dies nur korrekt funktioniert, wenn Sie eine Schrift mit fester Breite für das Eingabefeld ausgewählt haben.
tsvn:logtemplate wird für Projekte benutzt, die Regeln für die Formatierung der Logmeldungen haben. Diese Eigenschaft enthält einen mehrzeiligen Text, der automatisch im Übertragen-Dialog in die Textbox eingefügt wird. Sie können dann diesen Text bei der Übertragung bearbeiten. Wenn Sie gleichzeitig tsvn:logminsize verwenden, stellen Sie sicher dass dieser Wert größer als die Länge der Schablone ist, da sonst dieser Schutz wegfällt
Subversion erlaubt Ihnen, autoprops anzugeben, die für jede neu hinzugefügte oder importierte Datei, abhängig von der Dateiendung, gesetzt werden. Das erfordert, dass jeder Client die gleichen autoprops in seiner Subversion Konfigurationsdatei stehen hat. tsvn:autoprops können auch auf Ordner gesetzt werden und werden mit den lokalen autoprops des Anwenders zusammengeführt, wenn Dateien zu einem Projektarchiv hinzugefügt oder importiert werden. Das Format ist dasselbe wie bei den Subversion autoprops, z.B. setzt *.sh = svn:eol-style=native;svn:executable zwei Eigenschaften auf Dateien mit der .sh Endung.
Wenn es einen Konflikt zwischen den lokalen autoprops und tsvn:autoprops gibt, haben die Projekteinstellungen Vorrang vor den allgemeinen Einstellungen.
Im Übertragen-Dialog haben Sie die Möglichkeit, die Liste der geänderten Dateien inklusive des Status (hinzugefügt, geändert, etc) einzufügen. tsvn:logfilelistenglish legt fest, ob die vordefinierten Logmeldungen in englisch oder in einer anderen Sprache eingefügt werden sollen. Der Standardwert ist true.
TortoiseSVN kann zur Rechtschreibprüfung die Wörterbücher benutzen, welche auch von OpenOffice oder Mozilla verwendet werden. Wenn Sie ein solches installiert haben, legt diese Eigenschaft fest, welches Sprachmodul für das Projekt benutzt werden soll.tsvn:projectlanguage setzt die Sprache des zu benutzenden Wörterbuchs. Die Werte für die Sprache können Sie hier nachschlagen: MSDN: Language Identifiers.
Sie können diesen Wert als Dezimalzahl oder, wenn Sie das bevorzugen, als Hexadezimalzahl mit dem Prefix 0x angeben. Zum Beispiel Englisch (US) kann als 0x0409 oder 1033 eingegeben werden.
Die Eigenschaft tsvn:logsummary wird verwendet, um einen Abschnitt aus der Logmeldung zu extrahieren, der dann als Zusammenfassung der Logmeldung im Log-Dialog angezeigt wird.
Die tsvn:logsummary Eigenschaft muss einen einzeiligen regulären Ausdruck enthalten, der eine RegEx-Gruppe enthält. Der Inhalt dieser Gruppe wird als Zusammenfassung verwendet
Ein Beispiel: \[ZUSAMMENFASSUNG\]:\s+(.*) Dieser Ausdruck wird alles nach „[ZUSAMMENFASSUNG]“ aus der Logmeldung ausschneiden und als Zusammenfassung verwenden.
Mit der Eigenschaft tsvn:logrevregex wird ein regulärer Ausdruck festgelegt, der Referenzen auf Revisionen in Logmeldungen sucht. Im Log-Dialog werden diese Referenzen als anklickbare Verweise angezeigt. Bei einem Mausklick auf einen solchen Verweis im Log-Dialog wird entweder im selben Fenster zu dieser Revision gesprungen, falls die Revision bereits geladen oder im Log-Puffer vorhanden ist oder es wird ein neuer Log-Dialog mit dieser Revision geöffnet.
Der reguläre Ausdruck muss mit der gesamten Referenz und nicht nur mit der Revisionsnummer übereinstimmen. Die Revisionsnummer wird automatisch aus dem gefundenen Verweistext extrahiert.
Falls diese Eigenschaft nicht gesetzt ist, wird ein Standardausdruck verwendet, um die Revisionsverweise anzuzeigen.
Wenn Sie eine neue Eigenschaft hinzufügen wollen, können Sie entweder eine Standardeigenschaft aus der Kombinationsliste wählen oder einen beliebigen Eigenschaftsnamen eingeben. Falls für Ihr Projekt spezifische Eigenschaften verwendet werden, die ebenfalls in der Auswahlliste erscheinen sollen, können Sie mit den TortoiseSVN Eigenschaften tsvn:userfileproperties und tsvn:userdirproperties eine Liste von Projekteigenschaften vorgeben. Wenden Sie die TortoiseSVN Eigenschaften auf einen Ordner an. Sobald Sie anschließend die Eigenschaften eines Unterordners bearbeiten, werden die Projekteigenschaften in der Liste der vorgegebenen Eigenschaftsnamen erscheinen.
Manche tsvn: Eigenschaften erfordern einen true/false Wert. TortoiseSVN versteht auch yes als Synonym für true und no als Synonym für false.
TortoiseSVN kann einige Fehlerverfolgungssysteme in Subversion integrieren. Dies geschieht über Eigenschaften, die mit bugtraq: beginnen. Wie Sie mit diesen Eigenschaften umgehen ist in „Integration mit einem System zur Fehlerverfolgung“ erklärt.
TortoiseSVN kann auch mit einigen webbasierten Projektarchivbetrachtern, unter Verwendung von Eigenschaften, die mit webviewer: beginnen, zusammenarbeiten. Lesen Sie „Integration mit webbasierten Projektarchivbetrachtern“ für weitere Informationen.
Diese speziellen Eigenschaften müssen für Ordner und nicht für Dateien gesetzt werden. Wenn Sie eine Datei oder einen Ordner übertragen dann werden die Eigenschaften aus eben diesem Ordner gelesen. Wenn die Eigenschaften nicht gefunden werden, sucht TortoiseSVN im Ordnerbaum aufwärts nach diesen Eigenschaften, bis entweder die Eigenschaften gefunden wurden oder der oberste Ordner der Arbeitskopie gefunden wurde. Wenn Sie also sicher sind dass alle Benutzer ihre Arbeitskopie z.B. von /trunk ausgecheckt haben, reicht es aus die Eigenschaften dort zu setzen. Wenn Sie hingegen nicht sicher sein können, dann müssen Sie diese Eigenschaften rekursiv auf alle Unterordner Ihres Projektes setzen. Beachten Sie: eine Eigenschaft welche auf Unterordnern gesetzt ist überschreibt dieselbe Eigenschaft für übergeordnete Ordner.
Ausschließlich für Projekteigenschaften (z.B. tsvn:, bugtraq: und webviewer:), können Sie die Rekursiv Option wählen, um die Eigenschaft auf alle Unterordner zu übertragen, ohne sie gleichzeitig auch für alle Dateien zu setzen.
Wenn Sie mit TortoiseSVN neue Unterordner zu einer Arbeitskopie hinzufügen, werden sämtliche Projekteigenschaften des Elternordners auf den Unterordner übertragen.
Das Holen von Projekteigenschaften vom Server ist eine langsame Operation, so dass einige der oben beschriebenen Operationen im Projektarchivbetrachter nicht genau so wie in einer Arbeitskopie funktionieren.
Wenn Sie eine Eigenschaft im Projektarchivbetrachter hinzufügen, werden nur die Standard svn: Eigenschaften zur Auswahl angeboten. Alle anderen Eigenschaftsnamen müssen manuell eingegeben werden.
Eigenschaften können über den Projektarchivbetrachter weder rekursiv gesetzt noch gelöscht werden.
Projekteigenschaften werden nicht automatisch weitergereicht, wenn ein Unterordner im Projektarchivbetrachter hinzugefügt wird.
tsvn:autoprops werden nicht auf Dateien angewendet, die im Projektarchivbetrachter hinzugefügt werden.
Obwohl die TortoiseSVN Projekteigenschaften sehr nützlich sind, gelten sie nur für TortoiseSVN und einige von ihnen sogar nur für neuere Versionen von TortoiseSVN. Sobald Projektmitarbeiter verschiedene Subversion Clients oder eventuell alte Versionen von TortoiseSVN einsetzen, sollten Sie besser mit Aktionsskripten im Projektarchiv Projektregeln durchsetzen. Projekteigenschaften können nur beim Einrichten von Regeln helfen, jedoch nicht dabei, diese durchzusetzen.