Diese Dokumentation wurde zur Beschreibung der Serie 1.6.x von Subversion erstellt. Falls Sie eine unterschiedliche Version von Subversion einsetzen, sei Ihnen dringend angeraten, bei http://www.svnbook.com/ vorbeizuschauen und stattdessen die zu Ihrer Version von Subversion passende Version dieser Dokumentation heranzzuiehen.
Wir haben bereits detailliert besprochen, wie Subversion unterschiedliche Versionen von Dateien und Verzeichnissen im Projektarchiv ablegt und wieder herausholt. Ganze Kapitel haben sich dieser fundamentalen Funktionalität des Werkzeugs gewidmet. Falls die Versionierungsunterstützung an diesem Punkt aufhörte, wäre Subversion aus Versionskontrollperspektive immer noch vollständig.
Aber sie hört hier noch nicht auf.
Zusätzlich zur Versionierung Ihrer Verzeichnisse und Dateien liefert Subversion Schnittstellen zum Hinzufügen, Ändern und Entfernen versionierter Metadaten zu allen versionierten Dateien und Verzeichnissen. Wir bezeichnen diese Metadaten als Eigenschaften. Sie sind so etwas wie Tabellen mit zwei Spalten, die Namen von Eigenschaften auf beliebige Werte abbilden und an jedes Objekt Ihrer Arbeitskopie gehängt werden. Im Allgemeinen können Sie die Namen und Werte der Eigenschaften frei bestimmen, mit der Einschränkung, dass die Namen nur aus ASCII-Zeichen bestehen dürfen. Und das Beste an diesen Eigenschaften ist, dass auch sie genauso versioniert sind wie der textuelle Inhalt Ihrer Dateien. Sie können Änderungen an Eigenschaften ebenso einfach editieren, übergeben oder rückgängig machen wie Änderungen an Dateiinhalten. Das Versenden und Empfangen von Änderungen an Eigenschaften geschieht im Rahmen Ihrer typischen Übergabe- und Aktualisierungstätigkeiten – Sie müssen hierfür Ihre grundlegenden Prozesse nicht anpassen.
Anmerkung | |
---|---|
Subversion hat die Menge aller Eigenschaften die mit
|
Eigenschaften tauchen auch an einer anderen Stelle von Subversion auf. So wie Dateien und Verzeichnisse mit beliebigen Eigenschafts-Namen und -Werten versehen werden können, kann auch jede Revision als Ganzes beliebige Eigenschaften bekommen. Die selben Einschränkungen gelten auch hier – menschenlesbare Namen und beliebige binäre Werte. Der Hauptunterschied ist, dass Revisions-Eigenschaften unversioniert sind. Mit anderen Worten: falls Sie den Wert einer Revisions-Eigenschaft ändern oder die Eigenschaft löschen, gibt es mit Subversion Bordmitteln keine Möglichkeit, den ursprünglichen Wert wiederherzustellen.
Subversion besitzt keine besondere Richtlinie zur Verwendung
von Eigenschaften. Es verlangt nur, dass Sie keine Namen für Eigenschaften
verwenden, die den Präfix svn:
haben, da dieser
Namensraum für seine eigene Verwendung reserviert ist. Und
Subversion benutzt tatsächlich Eigenschaften – sowohl die
versionierten als auch die unversionierten. Bestimmte
versionierte Eigenschaften haben eine besondere Bedeutung oder
Auswirkungen wenn sie an Dateien und Verzeichnissen hängen oder
sie beinhalten eine spezielle Information über die Revision mit
der sie verbunden sind. Bestimmte Revisions-Eigenschaften werden
automatisch bei der Übergabe an Revisionen gehängt; sie
beinhalten Informationen über die Revision. Die meisten dieser
Eigenschaften werden an einer anderen Stelle in diesem Kapitel oder
in anderen Kapiteln im Rahmen allgemeinerer Themen erwähnt, mit
denen sie zusammenhängen. Eine erschöpfende Aufstellung der
vordefinierten Eigenschaften von Subversion finden Sie in „Subversion-Eigenschaften“.
Anmerkung | |
---|---|
Während Subversion automatisch Eigenschaften
( |
In diesem Abschnitt untersuchen wir den Nutzen der Unterstützung von Eigenschaften – sowohl für den Anwender von Subversion als auch für Subversion selbst. Sie werden die Unterbefehle von svn kennenlernen, die mit Eigenschaften zu tun haben und wie Änderungen an Eigenschaften sich auf Ihren normalen Umgang mit Subversion auswirken.
Ebenso wie Subversion Eigenschaften verwendet, um zusätzliche Informationen über die enthaltenen Dateien, Verzeichnisse und Revisionen zu speichern, könnten Eigenschaften auch für Sie ähnlich von Nutzen sein. Sie werden es vielleicht als nützlich ansehen, wenn Sie in der Nähe Ihrer versionierten Daten spezielle Metadaten dazu unterbringen können.
Nehmen wir mal an, Sie möchten eine Webpräsenz entwerfen, die viele digitale Fotos mit Bildunterschrift und Zeitstempel anzeigen soll. Da sich die Menge Ihrer Fotos ständig ändert, möchten Sie soviel wie möglich automatisieren. Die Fotos können ziemlich groß werden, so dass Sie den Besuchern Ihrer Seite Miniaturvorschaubilder anbieten möchten.
Natürlich können Sie diese Funktionalität auch mit
herkömmlichen Dateien hinbekommen. Das bedeutet, Sie haben
image123.jpg
und
image123-thumbnail.jpg
gemeinsam in einem
Verzeichnis. Oder Sie speichern die Vorschaubildchen in einem
anderen Verzeichnis, etwa
thumbnails/image123.jpg
, falls Sie die
gleichen Dateinamen beibehalten möchten. Sie können auch die
Bildunterschriften und Zeitstempel auf ähnliche Weise
speichern, ebenso vom Originalbild getrennt. Das Problem
hierbei ist jedoch, dass sich Ihre Ansammlung an Dateien mit
jedem neu hinzugefügten Bild vervielfältigt.
Betrachten Sie nun dieselbe Webpräsenz, eingerichtet unter
Verwendung der Datei-Eigenschaften von Subversion. Stellen Sie
sich vor, sie hätten eine einzelne Bilddatei
image123.jpg
mit Eigenschaften namens
Unterschrift
,
Zeitstempel
und sogar
Vorschaubild
. Jetzt sieht Ihr Verzeichnis
viel überschaubarer aus – tatsächlich sieht es für den
flüchtigen Betrachter aus, als befänden sich dort nur
Bilddateien. Ihre Automatisierungs-Skripte wissen es jedoch
besser. Sie wissen, dass sie svn verwenden
können (oder noch besser, die Subversion-Sprachschnittstellen
– siehe „Benutzung der APIs“), um
die von Ihrer Webpräsenz zusätzlich benötigten Informationen
herauszuholen, ohne eine Indexdatei lesen oder
Pfad-Umbenennungs-Spielereien machen zu müssen.
Anmerkung | |
---|---|
Obwohl Subversion kaum Einschränkungen für die von Ihnen verwendeten Namen und Werte für Eigenschaften macht, ist es nicht entworfen worden, um optimal mit großen Eigenschafts-Werten oder umfangreichen Eigenschafts-Mengen für eine bestimmte Datei oder ein Verzeichnis umgehen zu können. Gewöhnlich behält Subversion gleichzeitig alle Eigenschafts-Namen und -Werte im Speicher, die zu einem einzelnen Objekt gehören, was bei umfangreichen Eigenschafts-Mengen zu erheblichen Leistungseinbußen oder fehlgeschlagenen Operationen führen kann. |
Spezielle Revisions-Eigenschaften werden auch sehr oft
genutzt. Häufig wird eine Eigenschaft verwendet, deren Wert
eine Fehlernummer eines Fehlerverwaltungssystem ist, mit dem
die Revision in Beziehung gebracht wird, etwa weil eine mit
dieser Revision vorgenommene Änderung den entsprechenden
Fehler behebt. Andere Anwendungsfälle beinhalten die Vergabe
anwenderfreundlicher Namen für die Revision – es könnte
schwierig sein, sich zu erinnern, dass Revision 1935
vollständig getestet war. Wenn es jedoch eine Eigenschaft
Testergebnis
mit dem Wert alles
bestanden
für diese Revision gibt, ist das eine
durchaus nützliche Information. Subversion erlaubt es Ihnen
auf einfache Weise mit der Option
--with-revprop
des Befehls svn
commit:
$ svn commit -m "Fix up the last remaining known regression bug." \ --with-revprop "test-results=all passing" Sende lib/crit_bits.c Übertrage Daten . Revision 912 übertragen. $
Das Programm svn gestattet es, Datei und Verzeichnis-Eigenschaften auf verschiedene Weise hinzuzufügen oder zu ändern. Für Eigenschaften mit kurzen, menschenlesbaren Werten ist es vermutlich am einfachsten, eine neue Eigenschaft zu vergeben, indem deren Name und Wert auf der Kommandozeile für den Unterbefehl svn propset angegeben wird:
$ svn propset copyright '(c) 2006 Red-Bean Software' calc/button.c Eigenschaft »copyright« für »calc/button.c« gesetzt $
Jedoch haben wir die von Subversion gebotene Flexibilität
bei der Behandlung Ihrer Eigenschafts-Werte angepriesen; und wenn
Sie planen, einen mehrzeiligen textuellen oder sogar binären
Eigenschafts-Wert zu verwenden, wollen Sie diesen wahrscheinlich
nicht auf den Kommandozeile angeben. Deshalb besitzt der
Unterbefehl svn propset eine Option
--file
(-F
), um den Namen
einer Datei angeben zu können, deren Inhalt den neuen
Eigenschafts-Wert ergibt.
$ svn propset license -F /path/to/LICENSE calc/button.c Eigenschaft »license« für »calc/button.c« gesetzt $
Es gibt einige Einschränkungen für die Vergabe von
Namen für Eigenschaften. Ein Eigenschafts-Name muss mit einem Buchstaben,
einem Doppelpunkt (:
) oder einem
Unterstrich (_
) beginnen; danach können Sie
auch Ziffern, Bindestriche (-
) und Punkte
(.
) verwenden.[12]
Zusätzlich zum Befehl propset bietet das Programm svn den Befehl propedit. Dieser Befehl verwendet den konfigurierten Editor (siehe „Config“), um Eigenschaften hinzuzufügen oder zu ändern. Wenn Sie den Befehl aufrufen, startet svn Ihren Editor mit einer temporären Datei, die den gegenwärtigen Wert der Eigenschaft beinhaltet (oder leer ist, falls Sie eine neue Eigenschaft hinzufügen). Dann bearbeiten Sie diesen Wert in Ihrem Editor bis er dem Wert entspricht, den Sie für die Eigenschaft verwenden möchten, speichern die Datei und beenden den Editor. Falls Subversion feststellt, dass Sie tatsächlich den bestehenden Wert der Eigenschaft geändert haben, wird das als neuer Wert angenommen. Wenn Sie Ihren Editor ohne Änderungen beenden, wird die Eigenschaft nicht verändert:
$ svn propedit copyright calc/button.c ### Editor ohne Änderung verlassen Keine Änderungen der Eigenschaft »copyright« für »calc/button.c« $
Hier sollten wir anmerken, dass die svn-Unterbefehle, die mit Eigenschaften zu tun haben, ähnlich wie bei anderen Unterbefehlen, auch auf mehrere Pfade gleichzeitig angewendet werden können. Dadurch wird es Ihnen ermöglicht, mit einem Befehl die Eigenschaften auf einer Menge von Dateien zu bearbeiten. Wir hätten beispielsweise das Folgende machen können:
$ svn propset copyright '(c) 2006 Red-Bean Software' calc/* Eigenschaft »copyright« für »calc/Makefile« gesetzt Eigenschaft »copyright« für »calc/button.c« gesetzt Eigenschaft »copyright« für »calc/integer.c« gesetzt … $
Das ganze Hinzufügen und Bearbeiten von Eigenschaften ist nicht gerade nützlich, falls an die gespeicherten Werte nicht einfach heranzukommen ist. Also bietet das Programm svn zwei Unterbefehle zur Anzeige der Namen und Werte von Eigenschaften an Dateien und Verzeichnissen. Der Befehl svn proplist listet alle Eigenschafts-Namen auf, die für einen Pfad vergeben sind. Sobald Sie die Eigenschafts-Namen auf einem Element kennen, können Sie die Werte einzeln mittels svn propget abrufen. Wenn diesem Befehl ein Eigenschafts-Name und ein Pfad (oder eine Menge von Pfaden) mitgegeben wird, wird der Wert der Eigenschaft nach Standardausgabe geschrieben.
$ svn proplist calc/button.c Eigenschaften zu »calc/button.c«: copyright license $ svn propget copyright calc/button.c (c) 2006 Red-Bean Software
Es gibt sogar eine Variante des Befehls
proplist, die es erlaubt, sowohl die Namen
als auch die Werte aller Eigenschaften auszugeben. Übergeben Sie
einfach die Option --verbose
(-v
).
$ svn proplist -v calc/button.c Eigenschaften zu »calc/button.c«: copyright (c) 2006 Red-Bean Software license ================================================================ Copyright (c) 2006 Red-Bean Software. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions, and the recipe for Fitz's famous red-beans-and-rice. …
Der letzte Unterbefehl, der mit Eigenschaften zu tun hat, ist propdel. Da Subversion Eigenschaften mit leeren Werten erlaubt, können Sie eine Eigenschaft nicht vollständig mit svn propedit oder mit svn propset entfernen. So hat beispielsweise dieser Befehl nicht den erwünschten Effekt:
$ svn propset license "" calc/button.c Eigenschaft »license« für »calc/button.c« gesetzt $ svn proplist -v calc/button.c Eigenschaften zu »calc/button.c«: copyright (c) 2006 Red-Bean Software license $
Zum vollständigen Löschen von Eigenschaften müssen Sie den Unterbefehl propdel verwenden. Die Syntax ist den anderen Eigenschafts-Befehlen ähnlich:
$ svn propdel license calc/button.c Eigenschaft »license« wurde von »calc/button.c« gelöscht. $ svn proplist -v calc/button.c Eigenschaften zu »calc/button.c«: copyright (c) 2006 Red-Bean Software $
Können Sie sich an diese unversionierten
Revisions-Eigenschaften erinnern? Auch diese können Sie mit den
eben beschriebenen Unterbefehlen von svn
verändern. Geben Sie einfach den Kommandozeilenparameter
--revprop
an und die Revision, deren
Eigenschaft Sie ändern möchten. Da Revisionen global sind,
brauchen Sie keinen Zielpfad für diese Eigenschafts-Unterbefehle
anzugeben sofern Sie sich in einer Arbeitskopie des
Projektarchivs befinden, deren Revisions-Eigenschaft Sie ändern
möchten. Anderenfalls können Sie den URL irgendeines Pfades im
entsprechenden Projektarchiv angeben (inklusive des
Wurzelverzeichnisses des Projektarchivs). Sie möchten
beispielsweise die Protokollnachricht einer bestehenden
Revision ändern.[13] Falls Ihr
aktuelles Arbeitsverzeichnis Teil einer Arbeitskopie Ihres
Projektarchivs ist, können Sie einfach den Befehl svn
propset ohne Zielpfad aufrufen:
$ svn propset svn:log "* button.c: Fix a compiler warning." -r11 --revprop Eigenschaft »svn:log« wurde für Revision »11« im Projektarchiv gesetzt $
Selbst wenn Sie keine Arbeitskopie aus diesem Projektarchiv ausgecheckt haben, können Sie dennoch die Änderung an der Eigenschaft durchführen, indem Sie den URL der Wurzel des Projektarchivs angeben:
$ svn propset svn:log "* button.c: Fix a compiler warning." -r11 --revprop \ http://svn.example.com/repos/project Eigenschaft »svn:log« wurde für Revision »11« im Projektarchiv gesetzt. $
Beachten Sie, dass die Fähigkeit, diese unversionierten Eigenschaften zu verändern, ausdrücklich vom Administrator des Projektarchivs hinzugefügt werden muss (siehe „Berichtigung des Protokolleintrags“). Das geschieht aus dem Grund, dass diese Eigenschaften nicht versioniert sind, und Sie Gefahr laufen, durch unvorsichtiges Bearbeiten Informationen zu verlieren. Der Administrator des Projektarchivs kann Schutzmaßnahmen gegen diesen Verlust ergreifen, und standardmäßig ist die Veränderung unversionierter Eigenschaften nicht freigeschaltet.
Tipp | |
---|---|
Benutzer sollten nach Möglichkeit svn propedit statt svn propset verwenden. Während das Endergebnis dieser Befehle identisch ist, wird bei ersterem der aktuelle Wert der zu ändernden Eigenschaft angezeigt, was dabei hilft, sicherzustellen, dass die Änderung auch die beabsichtigte war. Das gilt besonders für unversionierte Revisions-Eigenschaften. Darüber hinaus ist es auch bedeutend einfacher, mehrzeilige Eigenschafts-Werte in einem Texteditor statt auf der Kommandozeile zu bearbeiten. |
Jetzt, da Sie mit allen svn-Unterbefehlen vertraut sind, die mit Eigenschaften zu tun haben, wollen wir uns ansehen, welche Auswirkungen Änderungen an Eigenschaften auf den üblichen Arbeitsablauf von Subversion haben. Wie wir bereits früher erwähnten, sind Eigenschaften von Dateien und Verzeichnissen versioniert, genau so wie der Dateiinhalt. Deshalb bietet Subversion dieselben Möglichkeiten für das Zusammenführen der Änderungen anderer mit Ihren eigenen – sauber oder konfliktbehaftet.
Wie bei Dateiinhalten handelt es sich bei Ihren Eigenschafts-Änderungen um lokale Modifikationen, die erst dann dauerhaft werden, wenn Sie sie mittels svn commit an das Projektarchiv übergeben. Ihre Eigenschafts-Änderungen können auch leicht rückgängig gemacht werden – der Befehl svn revert bringt Ihre Dateien und Verzeichnisse wieder in den unbearbeiteten Zustand – und zwar Inhalt, Eigenschaften und alles andere. Auch können Sie durch die Benutzung der Befehls svn status und svn diff interessante Informationen über den Status Ihrer Datei- und Verzeichnis-Eigenschaften erhalten.
$ svn status calc/button.c M calc/button.c $ svn diff calc/button.c Eigenschaftsänderungen: calc/button.c ___________________________________________________________________ Name: copyright + (c) 2006 Red-Bean Software $
Beachten Sie, dass der Unterbefehl
status das M
in der
zweiten statt in der ersten Spalte anzeigt. Das geschieht, da
wir zwar die Eigenschaften von calc/button.c
verändert haben, nicht jedoch dessen Inhalt. Hätten wir beides
geändert, würden wir M
auch in der ersten
Spalte sehen. (svn status behandeln wir in
„Verschaffen Sie sich einen Überblick über Ihre Änderungen“).
Sie haben vielleicht auch die ungewöhnliche Art und Weise bemerkt, wie Subversion momentan Unterschiede von Eigenschaften darstellt. Sie können immer noch svn diff verwenden und dessen Ausgabe umleiten, um eine Patch-Datei zu erzeugen. Das Programm patch ignoriert Patches für Eigenschaften – es ignoriert regelmäßig alles, was es nicht versteht. Das bedeutet leider, dass für die vollständige Anwendung eines durch svn diff erzeugten Patches sämtliche Änderungen an Eigenschaften manuell nachgezogen werden müssen.
Eigenschaften sind eine mächtige Funktionalität von Subversion, die als Schlüsselkomponenten zahlreicher Subversion-Funktionen agieren, welche an anderer Stelle in diesem und in anderen Kapiteln erörtert werden – Unterstützung textueller Diffs und Zusammenführungen, Ersetzung von Schlüsselworten, Umwandlung von Zeilenenden, usw. Um jedoch den größten Nutzen aus Eigenschaften ziehen zu können, müssen sie auf den richtigen Dateien und Verzeichnissen gesetzt sein. Leider kann dieser Schritt leicht in der täglichen Routine vergessen werden, besonders deshalb, da das Versäumen des Setzens einer Eigenschaft normalerweise nicht einen offensichtlichen Fehler zur Folge hat (zumindest im Vergleich zu einer Datei, bei der versäumt wurde, sie unter Versionskontrolle zu stellen). Um Ihnen dabei zu helfen, die Eigenschaften an die Stellen zu bringen, wo sie nötig sind, bietet Subversion Ihnen ein paar einfache aber nützliche Funktionen.
Immer wenn Sie eine Datei mit svn add
oder svn import unter Versionskontrolle
nehmen, versucht Subversion, Sie zu unterstützen, indem es
einige übliche Datei-Eigenschaften automatisch setzt. Erstens
setzt Subversion auf Betriebssystemen, deren Dateisystem ein
Ausführbarkeits-Erlaubnis-Bit unterstützt, automatisch die
Eigenschaft svn:executable
auf neu
hinzugefügte oder importierte Dateien, bei denen das
Ausführbarkeits-Bit gesetzt ist. (Siehe „Ausführbarkeit von Dateien“ weiter
unten in diesem Kapitel für weitere Informationen zu dieser
Eigenschaft.)
Zweitens versucht Subversion den MIME-Typen der Datei zu
ermitteln. Falls Sie einen Laufzeitparameter
mime-types-files
konfiguriert haben,
versucht Subversion in dieser Datei einen passenden MIME-Typen
für die Endung Ihrer Datei zu finden. Wenn es fündig wird,
setzt es die Eigenschaft svn:mime-type
Ihrer
Datei auf den gefundenen MIME-Typen. Falls keine Datei
konfiguriert oder kein passender Typ für die Dateiendung
gefunden wurde, verwendet Subversion stattdessen seine recht
einfache Heuristik, um festzustellen, ob die Datei
nicht-textuellen Inhalt hat. Falls das der Fall ist, wird
automatisch die Eigenschaft svn:mime-type
dieser Datei auf application/octet-stream
gesetzt (der allgemeine „dies ist eine Ansammlung von
Bytes“-MIME-Type). Falls Subversion falsch rät, oder
falls Sie den Wert der Eigenschaft
svn:mime-type
präziser setzen möchten
– etwa image/png
oder
application/x-shockwave-flash
–
können Sie natürlich jederzeit die Eigenschaft entfernen oder
bearbeiten. (Mehr zur Verwendung von MIME-Typen durch
Subversion in „Datei-Inhalts-Typ“ später in
diesem Kapitel.)
Anmerkung | |
---|---|
UTF-16 wird häufig verwendet, um Dateien zu encoden, deren semantischer Inhalt zwar textueller Natur ist, die allerdings voller Bytes außerhalb des typischen ASCII-Zeichenraums sind. Als solche neigt Subversion dazu, diese Dateien als binär zu klassifizieren, sehr zum Leidwesen von Anwendern, die zeilenweise Unterschiedungen und Zusammenführungen, Schlüsselwortersetzungen und andere Verhaltensweisen für diese Dateien wünschen. |
Darüber hinaus bietet Subversion über sein
Laufzeit-Konfigurationssystem (siehe „Laufzeit-Konfigurationsbereich“) eine flexible
Möglichkeit, automatisch Eigenschaften zu setzen, die es Ihnen
erlaubt, Abbildungen von Dateinamensmustern auf
Eigenschafts-Namen und -Werte vorzunehmen. Auch hier haben
diese Abbildungen Auswirkungen auf das Hinzufügen und
Importieren und können nicht nur die standardmäßigen
Entscheidungen Subversions bezüglich des Mime-Typs außer Kraft
setzen, sondern auch zusätzliche Subversion- oder spezielle
Eigenschaften setzen. Beispielsweise könnten Sie eine
Abbildung definieren, die bestimmt, dass jedes Mal wenn eine
JPEG-Datei hinzugefügt wird – Dateien, deren Namen auf
das Muster *.jpg
passen – Subversion
automatisch die Eigenschaft svn:mime-type
für diese Dateien auf image/jpeg
setzt.
Oder vielleicht sollen alle Dateien mit dem Muster
*.cpp
svn:eol-style
auf
native
und svn:keywords
auf Id
gesetzt bekommen. Die Unterstützung
automatischer Eigenschaften ist vielleicht das praktischste
Werkzeug bezüglich Eigenschaften in der Werkzeugkiste von
Subversion. Siehe „Config“ für Details
zur Konfiguration dieser Unterstützung.
Anmerkung | |
---|---|
Subversion-Administratoren fragen häufig, ob es möglich ist, serverseitig eine Menge an Eigenschaftsdefinitionen zu konfigurieren, die alle Clients automatisch beachten, wenn sie auf Arbeitskopien arbeiten, die von diesem Server ausgecheckt worden sind. Leider bietet Subversion diese Möglichkeit nicht an. Administratoren können Hook-Scripts verwenden, um sicherzustellen, dass die Dateien und Verzeichnissen hinzugefügten und geänderten Eigenschaften den von den Administratoren vorgegebenen Richtlinien entsprechen, und Übergaben ablehnen, die dagegen verstoßen. (Siehe „Erstellen von Projektarchiv-Hooks“ für mehr zu Hook-Scripten.) Es besteht aber keinerlei Möglichkeit, diese Richtlinien im Voraus für Subversion-Clients für verbindlich zu erklären. |
[12] Wenn Sie XML kennen, so ist das etwa die ASCII-Teilmenge der Syntax für die Produktion „Name“ in XML.
[13] Das Berichtigen von
Rechtschreibfehlern, grammatischen Stolpersteinen und
„einfacher Unrichtigkeiten“ in
Protokollnachrichten ist vielleicht der häufigste
Anwendungsfall für die Option
--revprop
.