Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.

Laufzeit-Konfigurations-Bereich

Subversion bietet viele optionale Verhaltensweisen, die der Benutzer kontrollieren kann. Viele dieser Optionen möchte ein Benutzer für alle Subversion-Operationen auswählen. Anstatt die Benutzer jedoch dazu zu zwingen, sich die Kommandozeilenargumente für diese Optionen zu merken, und sie bei jeder Operation anzugeben, verwendet Subversion Konfigurationsdateien, die in einen Subversion-Konfigurations-Bereich ausgelagert sind.

Der Laufzeit-Konfigurations-Bereich von Subversion ist eine zweistufige Hierarchie aus Optionsnamen und deren Werten. Üblicherweise läuft es darauf hinaus, dass es ein Verzeichnis mit Konfigurationsdateien gibt (die erste Stufe), die einfache Textdateien im normalen INI-Format sind, wobei Abschnitte die zweite Stufe liefern. Sie können diese Dateien einfach mit Ihrem Lieblingseditor (etwa Emacs oder vi) bearbeiten. Sie beinhalten Anweisungen, die vom Client gelesen werden, um festzustellen, welche der verschiedenen optionalen Verhaltensweisen die Benutzer bevorzugen.

Aufbau des Konfigurations-Bereichs

Beim ersten Aufruf des svn-Kommandozeilen-Clients legt er einen anwenderspezifischen Konfigurations-Bereich an. Auf Unix-Systemen erscheint dieser Bereich als ein Verzeichnis namens .subversion im Heimatverzeichnis des Benutzers. Auf Win32-Systemen erzeugt Subversion einen Ordner namens Subversion normalerweise innerhalb des Bereichs Anwendungsdaten im Verzeichnis für das Anwenderprofil (welches, nebenbei bemerkt, gewöhnlich ein verstecktes Verzeichnis ist). Jedoch ist dieser Ablageort auf dieser Plattform von System zu System verschieden und wird durch die Windows-Registrierungsdatenbank bestimmt.[74] Wir werden uns auf den anwenderspezifischen Konfigurations-Bereich beziehen, indem wir dessen Unix-Namen .subversion verwenden.

Neben dem anwenderspezifischen Konfigurations-Bereich berücksichtigt Subversion das Vorhandensein eines systemweiten Konfigurations-Bereichs. Dieser erlaubt Administratoren, Standardeinstellungen für alle Benutzer auf einer Maschine vorzunehmen. Beachten Sie, dass der systemweite Konfigurations-Bereich allein keine zwingende Verfahrensweise bestimmt – die Einstellungen im anwenderspezifischen Konfigurations-Bereich heben die systemweiten auf, und letztendlich bestimmen an das Programm svn übergebene Kommandozeilenargumente das Verhalten. Auf Unix-ähnlichen Plattformen wird erwartet, dass der systemweite Konfigurations-Bereich das Verzeichnis /etc/subversion ist; auf Windows-Maschinen wird nach dem Verzeichnis Subversion innerhalb des gemeinsamen Anwendungsdaten-Bereichs gesucht (auch hier, wie in der Windows-Registrierungsdatenbank angegeben). Anders als beim anwenderspezifischen Bereich versucht svn nicht, den systemweiten Konfigurations-Bereich anzulegen.

Der anwenderspezifische Konfigurations-Bereich enthält gegenwärtig drei Dateien – zwei Konfigurationsdateien (config und servers) und eine Datei README.txt, die das INI-Format beschreibt. Beim Anlegen enthalten die Dateien Standardwerte für alle unterstützten Optionen von Subversion, die meisten davon auskommentiert und in Gruppen zusammengefasst, mit Beschreibungen, wie die Werte das Verhalten von Subversion beeinflussen. Um ein bestimmtes Verhalten zu ändern, brauchen Sie nur die entsprechende Konfigurationsdatei in einen Editor zu laden und den Wert der passenden Option zu ändern. Falls Sie irgendwann auf die Standardeinstellungen zurückschalten wollen, können Sie einfach das Konfigurationsverzeichnis löschen (oder umbenennen) und dann irgendeinen harmlosen svn-Befehl ausführen, wie etwa svn --version. Ein neues Konfigurationsverzeichnis mit dem Standardinhalt wird dann angelegt.

Subversion erlaubt es Ihnen auch, individuelle Konfigurations-Optionen in der Kommandozeile zu überschreiben, wenn Sie die Option --config-option verwenden, die besonders nützlich ist, falls Sie eine vorübergehende Änderung des Verhaltens herbeiführen möchten. Weiteren zur richtigen Verwendung dieser Option unter svn Optionen.

Der anwenderspezifische Konfigurations-Bereich enthält auch einen Zwischenspeicher mit Authentisierungsdaten. Das Verzeichnis auth beinhaltet eine Reihe Unterverzeichnisse, die Teile zwischengespeicherter Informationen enthalten, welche von den verschiedenen durch Subversion unterstützten Authentifizierungsmethoden benutzt werden. Dieses Verzeichnis wird so erzeugt, dass nur der Benutzer selbst den Inhalt lesen kann.

Konfiguration und die Windows-Registrierungsdatenbank

Neben dem üblichen INI-basierten Konfigurations-Bereich können Subversion-Clients auf Windows-Plattformen auch die Windows-Registrierungsdatenbank für die Konfigurationsdaten verwenden. Die Namen der Optionen und deren Werte sind die gleichen wie in den INI-Dateien. Die Datei/Abschnitt-Hierarchie wird hierbei beibehalten, jedoch in einer etwas anderen Weise – bei diesem Schema sind Dateien und Abschnitte lediglich Ebenen im Schlüsselbaum der Registrierungsdatenbank.

Für systemweite Konfigurationswerte sucht Subversion unter dem Schlüssel HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion. Beispielsweise wird die Option global-ignores, die sich im Abschnitt miscellany der Datei config befindet, unter HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores gefunden. Benutzereigene Konfigurationswerte sollten unter HKEY_CURRENT_USER\Software\Tigris.org\Subversion gespeichert werden.

Konfigurations-Optionen aus der Registrierungsdatenbank werden vor den entsprechenden datei-basierten Optionen gelesen, so dass die in den Konfigurationsdateien gefundenen Werte die entsprechenden Werte aus der Registrierungsdatenbank überschreiben. Mit anderen Worten: Subversion sucht auf Windows-Systemen nach Konfigurationsinformationen an den folgenden Stellen (niedrigere Nummern haben Vorrang vor höheren Nummern):

  1. Kommandozeilenoptionen

  2. Die anwenderspezifischen INI-Dateien

  3. Die anwenderspezifischen Werte in der Registrierungsdatenbank

  4. Die systemweiten INI-Dateien

  5. Die systemweiten Werte in der Registrierungsdatenbank

Darüber hinaus unterstützt die Windows-Registrierungsdatenbank keine Auskommentierungen. Trotzdem ignoriert Subversion alle Optionsschlüssel, die mit einem Doppelkreuz (#) beginnen. Das erlaubt Ihnen, eine Subversion-Option auszukommentieren, ohne gleich den gesamten Schlüssel aus der Registrierungsdatenbank zu löschen; hierdurch wird die Wiederherstellung der Option wesentlich erleichtert.

Der svn-Kommandozeilen-Client versucht niemals, in die Windows-Registrierungsdatenbank zu schreiben oder dort einen Standard-Konfigurations-Bereich anzulegen. Sie können benötigte Schlüssel mit dem Programm REGEDIT erzeugen. Alternativ können Sie auch eine .reg-Datei anlegen (so wie die in Beispiel 7.1, „Beispieldatei mit Einträgen für die Registrierungsdatenbank (.reg)“) und dann im Windows-Explorer auf das Icon dieser Datei doppelklicken, was bewirkt, dass die Daten mit der Registrierungsdatenbank zusammengeführt werden.

Beispiel 7.1. Beispieldatei mit Einträgen für die Registrierungsdatenbank (.reg)

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\groups]

[HKEY_LOCAL_MACHINE\Software\Tigris.org\Subversion\Servers\global]
"#http-auth-types"="basic;digest;negotiate"
"#http-compression"="yes"
"#http-library"=""
"#http-proxy-exceptions"=""
"#http-proxy-host"=""
"#http-proxy-password"=""
"#http-proxy-port"=""
"#http-proxy-username"=""
"#http-timeout"="0"
"#neon-debug-mask"=""
"#ssl-authority-files"=""
"#ssl-client-cert-file"=""
"#ssl-client-cert-password"=""
"#ssl-pkcs11-provider"=""
"#ssl-trust-default-ca"=""
"#store-auth-creds"="yes"
"#store-passwords"="yes"
"#store-plaintext-passwords"="ask"
"#store-ssl-client-cert-pp"="yes"
"#store-ssl-client-cert-pp-plaintext"="ask"
"#username"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auth]
"#password-stores"="windows-cryptoapi"

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\helpers]
"#diff-cmd"=""
"#diff-extensions"="-u"
"#diff3-cmd"=""
"#diff3-has-program-arg"=""
"#editor-cmd"="notepad"
"#merge-tool-cmd"=""

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\tunnels]

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\miscellany]
"#enable-auto-props"="no"
"#global-ignores"="*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store"
"#interactive-conflicts"="yes"
"#log-encoding"=""
"#mime-types-file"=""
"#no-unlock"="no"
"#preserved-conflict-file-exts"="doc ppt xls od?"
"#use-commit-times"="no"

[HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\auto-props]

Beispiel 7.1, „Beispieldatei mit Einträgen für die Registrierungsdatenbank (.reg)“ zeigt den Inhalt einer .reg-Datei: einige der am meisten benutzten Konfigurations-Optionen mit deren Standardwerten. Beachten Sie das Auftreten von systemweiten (für Netz-Proxy-Optionen) und anwenderspezifischen (u.a. Editoren und Passwortspeicherung) Einstellungen. Beachten Sie weiterhin, dass alle Optionen auskommentiert sind. Sie brauchen nur das Doppelkreuz (#) vom Anfang des Optionsnamens zu entfernen und den Wert nach Ihren Wünschen zu setzen.

Laufzeit-Konfigurations-Optionen

In diesem Abschnitt werden wir die besonderen Laufzeit-Konfigurations-Optionen erörtern, die Subversion momentan unterstützt.

Allgemeine Konfiguration

Die Datei config enthält den Rest der momentan verfügbaren Laufzeitoptionen von Subversion – diejenigen, die nichts mit dem Netz zu tun haben. Zum gegenwärtigen Zeitpunkt werden nur wenige Optionen benutzt, die, in Erwartung künftiger Erweiterungen, jedoch ebenfalls in Abschnitten zusammengefasst sind.

Der Abschnitt [auth] enthält Einstellungen zur Authentifizierung und Autorisierung gegenüber Subversion-Projektarchiven. Er enthält das Folgende:

password-stores

Diese Liste aus durch Komma getrennten Elementen bestimmt, welche der (wenn überhaupt) vom System bereitgestellten Passwortspeicher von Subversion zur Zwischenspeicherung von Authentifizierungsdaten in Erwägung gezogen werden sollen. Der Standardwert ist gnome-keyring, kwallet, keychain, gpg-agent, windows-crypto-api, was für GNOME Keyring, KDE Wallet, Mac OS X Keychain, GnuPG Agent bzw. Microsoft Windows Cryptography API steht. Aufgeführte Speicher, die auf dem System nicht zur Verfügung stehen, werden ignoriert.

store-passwords

Der Eintrag dieser Option in der Datei config ist überholt. Sie steht nun als Konfigurationseintrag für jeden Server im Konfigurations-Bereich servers. Details unter „Serverspezifische Konfiguration“

store-auth-creds

Der Eintrag dieser Option in der Datei config ist überholt. Sie steht nun als Konfigurationseintrag für jeden Server im Konfigurations-Bereich servers. Details unter „Serverspezifische Konfiguration“

Der Abschnitt [helpers] kontrolliert, welche externen Anwendungen Subversion zur Erledigung seiner Aufgaben benutzen soll. Gültige Optionen in diesem Abschnitt sind:

diff-cmd

Der absolute Pfad zu einem Vergleichswerkzeug, das verwendet wird, wenn Subversion diff-Ausgaben erzeugt (wie beim Aufruf des Befehls svn diff). Standardmäßig benutzt Subversion eine interne Vergleichsbibliothek – wenn diese Option gesetzt wird, benutzt es für diese Aufgabe ein externes Programm. Siehe „Verwenden externer Werkzeuge zum Vergleichen und Zusammenführen“ für Details zur Verwendung solcher Programme.

diff-extensions

Ähnlich der Kommandozeilenoption --extensions (-x) werden hiermit zusätzliche Optionen angegeben, die an den Mechanismus zum Vergleichen von Dateiinhalten weitergereicht werden. Die Menge sinnvoller Optionen hängt davon ab, ob der Client den eingebauten Vergleichsmechanismus von Subversion verwendet oder einen externen. Für Details beachten Sie die Ausgabe von svn help diff. Der Standardwert dieser Option ist -u.

diff3-cmd

Der absolute Pfad zu einem Dreiwege-Vergleichswerkzeug. Subversion verwendet dieses Programm, um Änderungen des Benutzers mit denjenigen aus dem Projektarchiv zusammenzuführen. Standardmäßig benutzt Subversion eine interne Vergleichsbibliothek – wenn diese Option gesetzt wird, benutzt es für diese Aufgabe ein externes Programm. Siehe „Verwenden externer Werkzeuge zum Vergleichen und Zusammenführen“ für Details zur Verwendung solcher Programme.

diff3-has-program-arg

Dieser Schalter sollte auf true gesetzt werden, falls das mit der Option diff3-cmd angegebene Programm den Parameter --diff-program zulässt.

editor-cmd

Bestimmt das Programm, das Subversion verwendet, wenn den Benutzer nach bestimmten Arten textueller Metadaten gefragt wird sowie zur interaktiven Auflösung von Konflikten. Siehe „Verwendung externer Editoren“ für weitere Informationen zur Verwendung von externen Editoren mit Subversion.

merge-tool-cmd

Gibt ein Programm an, das Subversion zur Durchführung von Dreiwege-Zusammenführungs-Operationen Ihrer versionierten Dateien benutzt. Siehe „Verwenden externer Werkzeuge zum Vergleichen und Zusammenführen“ für Details zur Verwendung solcher Programme.

Der Abschnitt [tunnels] erlaubt Ihnen, neue Tunnel-Schemas für svnserve und svn:// Client-Verbindungen zu definieren. Für weitere Details, siehe „Tunneln über SSH“.

Der Abschnitt [miscellany] ist für alles, was nicht woanders hingehört. In diesem Abschnitt finden Sie:

enable-auto-props

Fordert Subversion auf, Eigenschaften von neu hinzugefügten oder importierten Dateien zu setzen. Der Standardwert ist no also sollte der Wert auf yes gesetzt werden, um diese Funktion zu ermöglichen. Der Abschnitt [auto-props] in dieser Datei gibt an, welche Eigenschaften bei welchen Dateien gesetzt werden sollen.

global-ignores

Wenn Sie den Befehl svn status aufrufen, zeigt Subversion unversionierte Dateien und Verzeichnisse zusammen mit versionierten an, wobei erstere mit einem ? markiert werden (siehe „Verschaffen Sie sich einen Überblick über Ihre Änderungen“). In dieser Anzeige können uninteressante unversionierte Objekte manchmal lästig sein – beispielsweise Objektdateien aus einer Programmübersetzung. Die Option global-ignores ist eine durch Leerzeichen getrennte Liste aus Globs, die die Namen der Dateien und Verzeichnisse beschreiben, die Subversion nicht anzeigen soll, sofern sie unversioniert sind. Der Standardwert ist *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store.

Ebenso wie svn status ignorieren auch die Befehle svn add und svn import beim Durchsuchen eines Verzeichnisses Dateien, deren Namen auf die Muster der Liste passen. Sie können dieses Verhalten für einen einzelnen Aufruf einer dieser Befehle aufheben, indem Sie entweder den Dateinamen ausdrücklich aufführen oder die Option --no-ignore angeben.

Für Informationen über eine feinere Auswahl zu ignorierender Objekte, siehe „Ignorieren unversionierter Objekte“.

interactive-conflicts

Diese boolesche Option bestimmt, ob Subversion versuchen soll, Konflikte interaktiv aufzulösen. Wenn der Wert yes ist (entspricht dem Standardwert), fordert Subversion den Benutzer auf, anzugeben, wie die Konflikte zu behandeln sind, wie in „Lösen Sie etwaige Konflikte auf“ beschrieben. Anderenfalls wird es den Konflikt einfach markieren und mit der Bearbeitung weitermachen, wobei die Konfliktauflösung auf einen späteren Zeitpunkt verschoben wird.

log-encoding

Diese Variable bestimmt die Zeichensatzkodierung für Protokollnachrichten. Sie ist eine dauerhafte Form der Option --encoding (siehe svn Optionen). Das Subversion-Projektarchiv speichert Protokollnachrichten in UTF-8 und geht davon aus, dass Ihre Protokollnachricht unter Verwendung der natürlichen Locale Ihres Betriebssystems verfasst wird. Sie sollten eine unterschiedliche Kodierung angeben, falls Ihre Protokollnachrichten in irgendeiner anderen Kodierung geschrieben werden.

mime-types-file

Diese, in Subversion 1.5 neu hinzugekommene, Option gibt den Pfad einer MIME-Typ-Zuordnungs-Datei an, etwa die Datei mime.types, die vom Apache HTTP Server zur Verfügung gestellt wird. Subversion verwendet diese Datei, um neu hinzugefügten oder importierten Dateien MIME-Typen zuzuordnen. Siehe „Automatisches Setzen von Eigenschaften“ und „Datei-Inhalts-Typ“ für mehr Informationen zur Erkennung und Behandlung von Dateiinhaltstypen durch Subversion.

no-unlock

Diese boolesche Option entspricht der Option --no-unlock des Befehls svn commit, die Subversion dazu auffordert, Sperren auf gerade übertragene Dateien nicht aufzuheben. Wird diese Laufzeitoption auf yes gesetzt, wird Subversion niemals automatisch Sperren aufheben, und es Ihnen überlassen, ausdrücklich svn unlock aufzurufen. Der Standardwert ist no.

preserved-conflict-file-exts

Der Wert dieser Option ist eine durch Leerzeichen getrennte Liste von Dateiendungen, die Subversion bei der Erstellung von Konfliktdatei-Namen beibehalten soll. Standardmäßig ist die Liste leer. Diese Option ist neu in Subversion 1.5.

Wenn Subversion Konflikte bei Änderungen an Dateiinhalten feststellt, delegiert es deren Auflösung an den Benutzer. Um bei der Auflösung dieser Konflikte behilflich zu sein, hält Subversion unveränderte Kopien der verschiedenen in Konflikt stehenden Dateiversionen in der Arbeitskopie vor. Standardmäßig haben diese Konfliktdateien Namen, die aus dem Originalnamen und einer speziellen Endung bestehen, etwa .mine oder .REV (wobei REV eine Revisionsnummer ist). Unter Betriebssystemen, die das Standardprogramm zum Öffnen und Bearbeiten einer Datei aus deren Dateiendung herleiten, ist es ein kleines Ärgernis, dass es durch das Anhängen dieser besonderen Endungen nicht mehr so einfach wird, die Datei mit dem passenden Standardprogramm zu bearbeiten. Wenn beispielsweise ein Konflikt bei der Datei ReleaseNotes.pdf auftaucht, könnte es sein, dass die Konfliktdateien ReleaseNotes.pdf.mine oder ReleaseNotes.pdf.r4231 genannt werden. Obwohl Ihr System vielleicht so konfiguriert ist, dass es Dateien mit der Endung .pdf mit Adobes Acrobat Reader öffnet, gibt es wahrscheinlich keine Einstellung für ein Programm, das alle Dateien mit der Endung .r4231 öffnet.

Mithilfe dieser Konfigurationsoption können Sie dieses Ärgernis allerdings beseitigen. Bei allen Dateien mit den angegebenen Endungen wird dann nach wie vor eine besondere Endung angehängt, jedoch wird dann zusätzlich die Originalendung angefügt. Angenommen, pdf wäre eine der Endungen, die in dieser Liste vorkämen, so würden die für ReleaseNotes.pdf erzeugten Konfliktdateien im obigen Beispiel ReleaseNotes.pdf.mine.pdf und ReleaseNotes.pdf.r4231.pdf genannt werden. Da jede Datei auf .pdf endet, wird das korrekte Standardprogramm zum Öffnen verwendet.

use-commit-times

Normalerweise besitzen die Dateien Ihrer Arbeitskopie Zeitstempel, die dem Zeitpunkt entsprechen, zu dem sie zuletzt von einem Prozess benutzt wurden, ob von einem Editor oder einem svn-Unterbefehl. Im Allgemeinen passt das für Softwareentwickler, da Buildsysteme oft auf Zeitstempel sehen, um festzustellen, welche Dateien neu übersetzt werden sollen.

In anderen Situationen wäre es manchmal schön, wenn die Dateien der Arbeitskopie Zeitstempel hätten, die dem Zeitpunkt entsprächen, zu dem sie das letzte Mal im Projektarchiv geändert wurden. Der Befehl svn export versieht die von ihm erzeugten Bäume stets mit diesen Zeitstempeln der letzten Übergabe. Wenn diese Variable auf yes gesetzt wird, vergeben auch die Befehle svn checkout, svn update, svn switch und svn revert die Zeitstempel der letzten Übergabe an die von Ihnen berührten Dateien.

Der Abschnitt [auto-props] kontrolliert die Fähigkeit des Subversion-Clients, automatisch Eigenschaften auf Dateien zu setzen, wenn sie hinzugefügt oder importiert werden. Er enthält eine beliebige Anzahl von Schlüssel-Wert-Paaren der Form PATTERN = PROPNAME=VALUE[;PROPNAME=VALUE ...], wobei PATTERN ein Muster ist, welches auf einen oder mehrere Dateinamen passt, und der Rest der Zeile eine durch Semikolon getrennte Liste von Eigenschafts-Zuweisungen ist. (Wenn Sie ein Semikolon für den Namen oder den Wert Ihrer Eigenschaft benötigen, können Sie es durch Verdoppelung maskieren.)

$ cat ~/.subversion/config
…
[auto-props]
*.c = svn:eol-style=native
*.html = svn:eol-style=native;svn:mime-type=text/html;; charset=UTF8
*.sh = svn:eol-style=native;svn:executable
…
$ cd projects/myproject
$ svn status
?       www/index.html
$ svn add www/index.html
A         www/index.html
$ svn diff www/index.html
…

Eigenschaftsänderungen: www/index.html
___________________________________________________________________
Hinzugefügt: svn:mime-type
## -0,0 +1 ##
+text/html; charset=UTF8
Hinzugefügt: svn:eol-style
## -0,0 +1 ##
+native
$

Wenn die Muster bei einer Datei mehrfach passen, führt das dazu, dass auch die jeweiligen Eigenschaften gesetzt werden; jedoch ist die Reihenfolge der Eigenschafts-Vergabe nicht garantiert, so dass Sie eine Regel nicht durch eine andere aufheben können. Mehrere Beispiele dieser automatischen Eigenschafts-Vergabe finden Sie in der Datei config. Vergessen Sie schließlich nicht, enable-auto-props im Abschnitt [miscellany] auf yes zu setzen, falls Sie die automatische Vergabe aktivieren möchten.

Der in Subversion 1.8 eingeführte Abschnitt [working-copy] wird zur Konfiguration von Arbeitskopien verwendet. In diesem Abschnitt gültige Optionen sind:

exclusive-locking-clients

Ermöglicht dem Client das exklusive SQLite-Sperren von Arbeitskopien, und verbessert somit die Leistung von Arbeitskopien auf Netzwerk-Laufwerken. Indem diese Konfigurations-Variable auf svn gesetzt wird, weisen Sie den Subversion Kommandozeilen-Client an, exklusive Sperren zu verwenden. Das verringert den Mehraufwand beim Sperren, bedeutet aber auch, dass nur ein Subversion-Client gleichzeitig auf die Arbeitskopie zugreifen kann. Ein weiterer Client, der versucht, auf die gesperrte Arbeitskopie zuzugreifen, blockiert für 10 Sekunden und bekommt dann einen Fehler. In den meisten Fällen werden konkurrierende Sperren bevorzugt, jedoch ist der Mehraufwand für das Sperren signifikanter, falls sich die Arbeitskopie auf einem Netzwerklaufwerk statt auf einem lokalen Laufwerk befindet. Wenn Sie es mit großen Arbeitskopien auf Netzwerklaufwerken zu tun haben, kann das exklusive Sperren einen signifikanten Leistungszuwachs bedeuten, d.h., es kann bis zu zwei oder drei Mal schneller sein. Diese Option ist neu in Subversion 1.8.

exclusive-locking

Das Setzen dieser Konfigurations-Variablen auf true erlaubt exklusive SQLite-Sperren von Arbeitskopien für alle Subversion 1.8 Clients. Diese Einstellung kann dazu führen, dass einige Clients nicht mehr richtig arbeiten. Der Standardwert für diese Option ist false. Diese Option ist neu in Subversion 1.8.

Serverspezifische Konfiguration

Die Datei servers enthält Subversion-Konfigurations-Optionen, die mit Netzschichten zu tun haben. In dieser Datei gibt es zwei besondere Abschnitte – [groups] und [global]. Der Abschnitt [groups] ist hauptsächlich eine Querverweistabelle. Die Schlüssel in diesem Abschnitt sind die Namen anderer Abschnitte dieser Datei; deren Werte sind Globs – Textsymbole, die möglicherweise Platzhalter enthalten – die mit dem Namen der Maschine verglichen werden, an die Subversion-Anfragen geschickt werden.

[groups]
beanie-babies = *.red-bean.com
collabnet = svn.collab.net

[beanie-babies]
…

[collabnet]
…

Bei Verwendung im Netz probiert Subversion den Namen des zu erreichenden Servers mit einem Gruppennamen im Abschnitt [groups] abzugleichen. Falls das gelingt, sucht Subversion nach einem Abschnitt in der Datei servers, dessen Name dem der abgeglichenen Gruppe entspricht. Aus diesem Abschnitt wird dann die eigentliche Netzkonfiguration gelesen.

Der Abschnitt [global] enthält die Einstellungen für all die Server, die nicht mit einem der Globs im Abschnitt [groups] abgeglichen werden konnten. Die in diesem Abschnitt verfügbaren Optionen sind exakt die gleichen, die auch in den anderen Server-Abschnitten dieser Datei erlaubt sind (außer natürlich im besonderen Abschnitt [groups]):

http-auth-types

Dies ist eine durch Semikolon getrennte Liste von HTTP-Authentifizierungstypen, die der Client als akzeptabel erachten wird. Gültige Typen sind basic, digest und negotiate, mit dem standardmäßigen Verhalten, das irgendein dieser Authentifizierungstypen akzeptiert wird. Ein Client, der darauf besteht, keine Authentifizierungsdaten im Klartext zu übertragen, könnte beispielsweise dergestalt konfiguriert werden, dass der Wert dieser Option digest;negotiate ist, wobei basic in dieser Liste nicht auftaucht. (Beachten Sie, dass diese Einstellung nur von Subversions Neon-basierten HTTP-Modul berücksichtigt wird.)

http-compression

Gibt an, ob Subversion versuchen soll, Netzanfragen an DAV-fähige Server zu komprimieren. Der Standardwert ist yes (obwohl Kompression nur dann stattfindet, wenn diese Fähigkeit in die Netzschicht hinein kompiliert worden ist). Setzen Sie diesen Wert auf no, um die Kompression abzuschalten, etwa wenn Sie Fehler bei Netzübertragungen suchen.

http-library

Die Laufzeit-Konfigurations-Option http-library erlaubt es Anwendern, welche der verfügbaren WebDAV-Zugriffsmodule sie (allgemein oder pro Server-Gruppe) verwenden möchten. Vor Version 1.8 hat Subversion ein Paar aus solchen Modulen angeboten: die ursprüngliche Implementierung libsvn_ra_neon (ausgewählt mit dem Optionswert neon) und das neuere libsvn_ra_serf (ausgewählt durch serf). Seit Subversion 1.8 wird nur noch libsvn_ra_serf unterstützt. Jedoch bleibt diese Konfigurations-Option bestehen, da der Laufzeit-Konfigurations-Bereich Versionen nicht wahrnimmt. Anwender mit mehreren installierten Subversion-Versionen könnten immer noch libsvn_ra_neon zur Verwendung zum Zugriff auf Orte mit einer älteren Version von Subversion freischalten.

http-proxy-exceptions

Eine durch Komma getrennte Liste aus Namensmustern für Projektarchiv-Server, die, ohne einen Proxy-Rechner zu benutzen, direkt angesprochen werden sollen. Die Syntax für die Muster ist die gleiche wie bei Dateinamen in der Unix-Shell. Ein Projektarchiv-Server mit einem zu irgendeinem dieser Muster passenden Namen wird nicht über einen Proxy angesprochen.

http-proxy-host

Der Name des Proxy-Rechners, über den Ihre HTTP-basierten Subversion-Anfragen geleitet werden müssen. Der Standardwert ist leer, was bedeutet, das Subversion HTTP-Anfragen nicht über einen Proxy-Rechner leitet und die Zielmaschine direkt anspricht.

http-proxy-password

Das Passwort, das an den Proxy-Rechner übermittelt werden soll. Der Standardwert ist leer.

http-proxy-port

Die Portnummer, die auf dem Proxy-Rechner verwendet werden soll. Der Standardwert ist leer.

http-proxy-username

Der Anwendername, der an den Proxy-Rechner übermittelt werden soll. Der Standardwert ist leer.

http-timeout

Die Zeitspanne in Sekunden, in der auf eine Antwort vom Server gewartet werden soll. Falls Sie Probleme mit einer langsamen Netzverbindung haben, die zu Auszeiten bei Subversion-Operationen führen, sollten Sie den Wert dieser Option erhöhen. Verwenden Sie den Wert 0 in Subversion 1.8 (oder älteren Versionen, die den Serf-basierten HTTP Diensteanbieter verwenden), um den Timeout vollständig abzuschalten.

neon-debug-mask

Eine Ganzzahl, die der Neon HTTP-Bibliothek als Maske angibt, welche Ausgaben zur Fehlersuche sie ausgeben soll. Der Standardwert ist 0, was alle Ausgaben zur Fehlersuche unterbindet. Vor der Version 1.8 verwendeten die meisten Subversion-Clients Neon (über das Zugriffsmodul libsvn_ra_neon) für die WebDAV/HTTP-Kommunikation zwischen Subversion-Client und -Server. Die Unterstützung für libsvn_ra_neon wurde in Subversion 1.8 jedoch eingestellt, so dass diese Option für neuere Subversion-Installationen überholt ist.

ssl-authority-files

Eine Liste aus durch Semikolon getrennten Pfaden zu Dateien, die Zertifikate der Zertifizierungsinstanzen (oder ZI) beinhalten, die vom Subversion-Client bei HTTPS-Zugriffen akzeptiert werden.

ssl-client-cert-file

Falls ein Wirtsrechner (oder eine Gruppe von Wirtsrechnern) ein SSL-Client-Zertifikat benötigt, werden Sie normalerweise nach dem Pfad zu Ihrem Zertifikat gefragt. Indem Sie diese Variable auf diesen Pfad setzen, kann Subversion automatisch Ihr Client-Zertifikat finden, ohne Sie zu fragen. Es gibt keinen Standard-Ablageort für Zertifikate; Subversion holt es über jeden Pfad, den Sie angeben.

ssl-client-cert-password

Falls Ihre SSL-Client-Zertifikatsdatei mit einem Kennwort verschlüsselt ist, wird Sie Subversion bei jeder Benutzung des Zertifikats danach fragen. Sollten Sie das lästig finden (und Sie nichts dagegen haben, das Passwort in der Datei servers zu speichern), können Sie diese Variable mit dem Kennwort des Zertifikats belegen. Sie werden dann nicht mehr gefragt.

ssl-pkcs11-provider

Der Wert dieser Option ist der Name des PKCS#11-Lieferanten, von dem ein SSL-Client-Zertifikat gezogen wird (falls der Server danach fragt). Diese Einstellung wird nur von Subversions Neon-basierten HTTP-Modul berücksichtigt, das in Subversion 1.8 entfernt wurde.

ssl-trust-default-ca

Setzen Sie diese Variable auf yes, falls Sie möchten, dass Subversion automatisch den mit OpenSSL mitgelieferten ZI vertraut.

store-auth-creds

Diese Einstellung ist dieselbe wie store-passwords, mit der Ausnahme, dass die Zwischenspeicherung der gesamten Authentifizierungsinformationen unterbunden oder erlaubt wird: Anwendernamen, Passwörter, Server-Zertifikate und andere Typen von Zugangsdaten, die zwischengespeichert werden könnten.

store-passwords

Das weist Subversion an, vom Anwender nach Authentifizierungsaufforderung eingegebene Passwörter zwischenzuspeichern oder die Zwischenspeicherung zu unterbinden. Der Standardwert ist yes. Setzen Sie den Wert auf no, um die Zwischenspeicherung auf Platte zu unterbinden. Sie können diese Option für einen einmaligen Aufruf des Befehls svn überschreiben, wenn Sie den Kommandozeilenparameter --no-auth-cache verwenden (bei den Unterbefehlen, die ihn unterstützen). Weitere Informationen hierzu unter „Zwischenspeichern von Zugangsdaten“. Beachten Sie, dass unabhängig von dieser Option Subversion keine Passwörter im Klartext speichert, es sei denn, die Option store-plaintext-passwords ist auch auf yes gesetzt.

store-plaintext-passwords

Diese Variable ist nur auf UNIX-ähnlichen Systemen wichtig. Sie kontrolliert, was der Subversion-Client macht, falls das Passwort für den aktuelle Authentifizierungs-Bereich nur unverschlüsselt auf Platte in ~/.subversion/auth/ zwischengespeichert werden kann. Sie können sie auf yes oder no setzen, um unverschlüsselte Passwörter zu erlauben bzw. zu unterbinden. Der Standardwert ist ask, was den Subversion-Client dazu veranlasst, Sie jedes Mal zu fragen, wenn ein neues Passwort dem Zwischenspeicherungsbereich unter ~/.subversion/auth/ hinzugefügt werden soll.

store-ssl-client-cert-pp

Diese Option kontrolliert, ob Subversion vom Anwender bereitgestellte Passphrasen für SSL Client-Zertifikate zwischenspeichern soll. Der Standardwert ist yes. Setzen Sie ihn auf no, um die Zwischenspeicherung der Passphrasen zu verhindern.

store-ssl-client-cert-pp-plaintext

Diese Option kontrolliert, ob Subversion beim Zwischenspeichern einer Passphrase für ein SSL Client-Zertifikat die Speicherung auf Platte im Klartext vornehmen darf. Der Standardwert dieser Option ist ask, was den Subversion-Client dazu veranlasst, bei Ihnen nachzufragen, wenn eine neue Client-Zertifikat-Passphrase dem Speicherbereich in ~/.subversion/auth/ hinzugefügt werden soll. Setzen Sie den Wert dieser Option auf yes oder no um Ihre Präferenz anzugeben und entsprechende Nachfragen zu vermeiden.



[74] Die Umgebungsvariable APPDATA zeigt auf den Bereich Anwendungsdaten, so dass Sie stets über %APPDATA%\Subversion auf diesen Ordner zugreifen können.