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.

Verwendung externer Editoren

Die offensichtlichste Art und Weise, Daten in Subversion zu bekommen, ist es, Dateien unter Versionskontrolle zu stellen, Änderungen an diesen Dateien zu übergeben usw. Aber neben versionierten Dateidaten leben auch andere Informationen in Ihrem Subversion-Projektarchiv. Einige dieser Informationen – Protokollnachrichten, Kommentare zu Sperren und einige Eigenschafts-Werte – sind textueller Natur und werden ausdrücklich von Benutzern geliefert. Die meisten dieser Informationen können dem Subversion-Kommandozeilen-Client mit den Optionen --message (-m) und --file (-F) bei den entsprechenden Unterbefehlen mitgegeben werden.

Jede dieser Optionen hat ihre Vor- und Nachteile. Wenn Sie beispielsweise eine Übergabe machen, funktioniert --file (-F) prima, falls Sie bereits eine Datei mit der Protokollnachricht vorbereitet haben. Wenn Sie es jedoch nicht gemacht haben, können Sie --message (-m) verwenden, um eine Protokollnachricht auf der Kommandozeile mitzugeben. Leider kann es knifflig werden, mehr als einen Einzeiler auf der Kommandozeile anzugeben. Benutzer verlangen mehr Flexibilität – auf Wunsch das Verfassen mehrzeiliger, formfreier Protokollnachrichten.

Subversion unterstützt das, indem es Ihnen erlaubt, einen externen Texteditor anzugeben, den es bei Bedarf startet, um Ihnen einen leistungsfähigeren Mechanismus zur Eingabe dieser textuellen Metadaten zu geben. Es gibt mehrere Möglichkeiten, Subversion mitzuteilen, welchen Editor Sie benutzen möchten. Subversion überprüft die folgenden Dinge in der angegebenen Reihenfolge, wenn es solch einen Editor starten möchte:

  1. --editor-cmd Kommandozeilenoption

  2. SVN_EDITOR Umgebungsvariable

  3. editor-cmd Option der Laufzeitkonfiguration

  4. VISUAL Umgebungsvariable

  5. EDITOR Umgebungsvariable

  6. Möglicherweise ein Standardwert, der in die Subversion-Bibliotheken eingebaut wurde (nicht in offiziell gebauten Versionen)

Der Wert aller dieser Optionen oder Variablen ist der Anfang einer Kommandozeile, die von der Shell ausgeführt werden soll. Subversion hängt an diese Kommandozeile ein Leerzeichen und den Pfadnamen einer temporären Datei, die editiert werden soll. Um einen Editor also mit Subversion verwenden zu können, muss er so aufgerufen werden können, dass dessen letzter Kommandozeilenparameter eine zu editierende Datei ist, die er beim Sichern überschreibt; und im Erfolgsfall ist ein Rückgabewert von Null zu liefern.

Wie beschrieben, können externe Editoren bei allen übergebenden Unterbefehlen (wie svn commit oder import, svn mkdir oder delete wenn ein URL-Ziel angegeben wird usw.) zur Eingabe von Protokollnachrichten verwendet werden, und Subversion versucht, den Editor automatisch zu starten, sofern Sie nicht eine der Optionen --message (-m) oder --file (-F) angeben. Der Befehl svn propedit ist fast ausschließlich für die Verwendung eines externen Editors gebaut worden. Seit Version 1.5, benutzt Subversion auch den konfigurierten externen Editor, wenn der Benutzer es auffordert, einen Editor zur interaktiven Konfliktauflösung zu starten. Seltsamerweise scheint keine Möglichkeit zu bestehen, einen externen Editor zur Eingabe von Kommentaren für Sperren zu verwenden.