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.

svn – Subversion-Kommandozeilen-Client

svn ist der offizielle Kommandozeilen-Client von Subversion. Er bietet eine nicht geringe Anzahl von Unterbefehlen und Optionen. Unterbefehle und weitere Argumente, die keine Optionen sind, müssen beim Aufruf von svn auf der Kommandozeile in einer festgelegten Reihenfolge angegeben werden. Optionen dagegen können überall in der Kommandozeile auftauchen (natürlich nach dem Programm-Namen), wobei deren Reihenfolge im Allgemeinen unerheblich ist. Alle der folgenden Beispiele zeigen gültige Aufrufe von svn status und werden exakt auf dieselbe Art und Weise interpretiert:

$ svn -vq status myfile
$ svn status -v -q myfile
$ svn -q status -v myfile
$ svn status -vq myfile
$ svn status myfile -qv

svn-Optionen

Obwohl Subversion verschiedene Optionen für seine Unterbefehle hat, existieren alle Optionen in einem einzigen Namensraum – dass heißt, dass alle Optionen dasselbe bedeuten, egal mit welchem Unterbefehl sie angegeben werden. Beispielsweise bedeutet --verbose (-v) stets ausführliche Ausgabe, unabhängig vom Unterbefehl, dem diese Option mitgegeben wird.

Der Kommandozeilen-Client svn bricht normalerweise sofort mit einer Fehlermeldung ab, falls Sie ihm eine Option mitgeben, die nicht auf den angegebenen Unterbefehl anwendbar ist. Seit Subversion 1.5 jedoch werden viele Optionen, die auf alle – oder fast alle – Unterbefehle anwendbar sind, von allen Unterbefehlen akzeptiert, auch wenn sie für einige keine Auswirkungen haben. In der Bedienhilfe des Kommandozeilen-Clients werden diese Optionen als globale Optionen zusammengefasst. Dies wurde zur Unterstützung derjenigen gemacht, die Skripte schreiben, die den Kommandozeilen-Client umhüllen. Die globalen Optionen sind die folgenden:

--config-dir DIR

Weist Subversion an, Konfigurationsinformationen aus dem angegebenen Verzeichnis zu lesen, statt aus dem Standardverzeichnis (.subversion im Heimatverzeichnis des Benutzers).

--config-option FILE:SECTION:OPTION=[VALUE]

Setzt den Wert einer Laufzeitkonfigurationsoption für die Dauer eines Befehls. FILE und SECTION bestimmen jeweils die Konfigurationsdatei (entweder config oder servers) bzw. den darin befindlichen Abschnitt, in dem sich die Option befindet, die Sie ändern möchten. OPTION ist natürlich die Option selbst, und VALUE der Wert (sofern vorhanden), den Sie der Option zuweisen möchten. Wenn Sie beispielsweise vorübergehend das automatische Setzen von Eigenschaften verhindern möchten, verwenden Sie --config-option=config:miscellany:enable-auto-props=no. Sie können diese Option mehrfach verwenden, um gleichzeitig unterschiedliche Optionswerte zu ändern.

--no-auth-cache

Verhindert die Zwischenspeicherung von Authentisierungsinformationen (z.B. Anwendername und Passwort) in den Laufzeitkonfigurationsverzeichnissen von Subversion.

--non-interactive

Unterbindet sämtliche Nachfragen. Beispiele für solche Nachfragen sind Aufforderungen zur Eingabe von Zugangsdaten und Entscheidungen zur Konfliktauflösung. Dies ist nützlich, falls Sie Subversion innerhalb eines automatisierten Skriptes aufrufen und somit ein Abbruch mit Fehlermeldung angebrachter ist als eine Nachfrage.

--password PASSWD

Gibt das Passwort zur Authentisierung gegenüber einem Subversion-Server an. Falls es nicht mitgegeben wird oder falsch ist, fragt Subversion bei Bedarf nach.

--trust-server-cert

Zusammen mit --non-interactive, wird Subversion aufgefordert, ohne Nachfrage beim Anwender von unbekannten Zertifizierungsstellen herausgegebene SSL Server-Zertifikate zu akzeptieren. Aus Sicherheitsgründen sollten Sie diese Option nur in dem Fall verwenden, wenn sichergestellt ist, dass die Integrität des Servers und die Netzverbindung zu Ihrem Client vertrauernswürdig ist.

--username NAME

Gibt den Anwendernamen zur Authentisierung gegenüber einem Subversion-Server an. Falls er nicht mitgegeben wird oder falsch ist, fragt Subversion bei Bedarf nach.

Der Rest der Optionen ist nur auf eine Teilmenge der Unterbefehle anwendbar und wird auch nur von einer Teilmenge der Unterbefehle akzeptiert. Diese sind:

--accept ACTION

Gibt eine Aktion zur automatischen Konfliktauflösung an. Mögliche Aktionen sind postpone, base, mine-full, theirs-full, edit und launch.

--auto-props

Ermöglicht Auto-Props, wobei die Anweisung enable-auto-props in der Datei config nichtig gemacht wird.

--change (-c) ARG

Wird verwendet, um sich auf eine bestimmte Änderung (also Revision) zu beziehen. Diese Option ist syntaktisch schöner als -r ARG-1:ARG.

--changelist ARG

Weist Subversion an, nur auf Elementen der Änderungsliste ARG zu arbeiten. Sie können diese Option mehrfach angeben, um Mengen aus Änderungslisten anzugeben.

--cl ARG

Ein Alias für die Option --changelist.

--depth ARG

Weist Subversion an, den Bereich einer Operation auf eine bestimmte Tiefe des Baums zu beschränken. ARG kann einen der Werte empty (nur das Ziel selbst), files (das Ziel und alle unmittelbaren Kind-Dateien), immediates (das Ziel und alle seine unmittelbaren Kinder) oder infinity (das Ziel und alle seine Nachfolger, vollrekursiv) annehmen.

--diff-cmd CMD

Dient der Angabe eines externen Programms zur Anzeige von Unterschieden zwischen Dateien. Wird svn diff ohne diese Option aufgerufen, verwendet es den eingebauten diff-Algorithmus von Subversion, der standardmäßig eine Ausgabe im unified-diff-Format erzeugt. Wenn Sie ein externes Programm verwenden wollen, benutzen Sie --diff-cmd. Sie können mit der Option --extensions (-x) Optionen an das externe Programm übergeben (mehr dazu später in diesem Kapitel).

--diff3-cmd CMD

Gibt ein externes Programm zum Zusammenführen von Dateien an.

--dry-run

Simuliert alle Stufen einer Befehlsausführung, nimmt jedoch keine Änderungen vor – weder auf der Platte noch im Projektarchiv.

--editor-cmd CMD

Gibt ein externes Programm zum Editieren einer Protokollnachricht oder eines Eigenschafts-Wertes an. Zum Angeben eines Standardeditors siehe den Abschnitt editor-cmd in „Config“.

--encoding ENC

Teilt Subversion mit, dass Ihre Protokollnachricht mit dem angegebenen Zeichensatz kodiert ist. Standard ist die sprachabhängige Locale Ihres Betriebssystems; Sie sollten die Kodierung angeben, wenn sie vom Standard abweicht.

--extensions (-x) ARG

Bestimmt Anpassungen für die Berechnung von Dateiunterschieden durch Subversion. Gültige Erweiterungen beinhalten:

--ignore-space-change (-b)

Änderungen bei der Anzahl an Leerraumzeichen ignorieren.

--ignore-all-space (-w)

Sämtlichen Leerraum ignorieren.

--ignore-eol-style

Änderungen bei der Art der Zeilenendungen ignorieren.

--show-c-function (-p)

C-Funktionsnamen in der Ausgabe von diff anzeigen.

--unified (-u)

Drei Zeilen unifizierten diff-Kontext anzeigen.

Der Standardwert von ARG ist -u. Falls Sie mehrere Argumente übergeben möchten, müssen Sie alle in Anführungszeichen setzen.

Beachten Sie, dass der Wert der Option --extension (-x) nicht auf die oben angeführten Optionen beschränkt ist, sofern Subversion für ein externes diff-Programm konfiguriert worden ist, sondern irgendwelche zusätzlichen Argumente beinhalten kann, den Subversion an dieses Programm weiterreichen soll.

--file (-F) FILENAME

Verwendet den Inhalt der benannten Datei für den angegebenen Befehl; verschiedene Unterbefehle interpretieren den Inhalt auf unterschiedliche Weise. Beispielsweise verwendet svn commit den Inhalt als Protokollnachricht, während svn propset ihn als Eigenschafts-Wert interpretiert.

--force

Erzwingt die Ausführung eines bestimmten Befehls oder einer Operation. Normalerweise hindert Sie Subversion daran, bestimmte Operationen auszuführen, doch können Sie Subversion mit dieser Option mitteilen ich weiß, was ich tue und bin mir aller möglichen Konsequenzen bewusst, also lass mich 'ran. Diese Option ist das programmtechnische Äquivalent dazu, bei eingeschaltetem Strom an den Leitungen herumzudoktern – wenn Sie nicht wissen, was Sie tun, bekommen Sie einen gehörigen Schlag.

--force-log

Erzwingt, dass ein zweifelhafter Parameter, der an die Optionen --message (-m) oder --file (-F) übergeben wird, als gültig akzeptiert wird. Standardmäßig erzeugt Subversion eine Fehlermeldung, falls Parameter für diese Optionen den Eindruck erwecken, sie seien stattdessen Ziele des Unterbefehls. Wenn Sie beispielsweise den Pfad einer versionierten Datei der Option --file (-F) übergeben, nimmt Subversion an, dass Sie einen Fehler gemacht haben, der Pfad als Zieldatei für die Operation gedacht war und Sie einfach vergessen haben, eine andere – unversionierte – Datei als Quelle Ihrer Protokollnachricht anzugeben. Um Ihre Absicht zu bestätigen und die Fehlermeldungen zu verhindern, übergeben Sie die Option --force-log an Unterbefehle, die Protokollnachrichten akzeptieren.

--help (-h oder -?)

Wird diese Option mit einem oder mehreren Unterbefehlen verwendet, zeigt es den eingebauten Hilfetext für jeden Unterbefehl an. Wird sie alleine verwendet, wird der allgemeine Hilfetext des Clients angezeigt.

--ignore-ancestry

Teilt Subversion mit, beim Ermitteln von Unterschieden die Abstammung zu ignorieren (allein der Inhalt von Pfaden wird berücksichtigt).

--ignore-externals

Teilt Subversion mit, Externals-Definitionen und die von ihnen verwalteten externen Arbeitskopien zu ignorieren.

--incremental

Erzeugt Ausgaben in einem Format, dass zum Verketten geeignet ist.

--keep-changelists

Teilt Subversion mit, Änderungslisten nach der Übergabe nicht zu löschen.

--keep-local

Erhält die lokale Kopie einer Datei oder eines Verzeichnisses (verwendet in Verbindung mit dem Befehl svn delete).

--limit (-l) NUM

Zeigt nur die ersten NUM Protokollnachrichten an.

--message (-m) MESSAGE

Zeigt an, dass Sie eine Protokollnachricht oder einen Sperrkommentar auf der Kommandozeile nach dieser Option angeben. Zum Beispiel:


$ svn commit -m "Sie schaffen es nicht bis Sonntag."
--native-eol ARG

Veranlasst svn export, eine bestimmte Zeilenende-Sequenz zu verwenden, als wäre es die auf der Client-Plattform übliche. ARG kann entweder CR, LF oder CRLF sein.

--new ARG

Verwendet ARG als das neuere Ziel (in Verbindung mit svn diff).

--no-auto-props

Verhindert Auto-Props, wobei die Anweisung enable-auto-props in der Datei config aufgehoben wird.

--no-diff-deleted

Verhindert, dass Subversion Unterschiede gelöschter Dateien anzeigt. Das Standardverhalten für gelöschte Dateien ist, dass svn diff die gleichen Unterschiede anzeigt, die Sie sähen, wenn Sie die Datei behalten aber ihren Inhalt gelöscht hätten.

--no-ignore

Zeigt Dateien in der Statusliste, die normalerweise nicht angezeigt würden, da deren Name auf ein Muster passt, dass in der Konfigurationsoption global-ignores oder der Eigenschaft svn:ignore angegeben ist. Siehe „Config“ und „Ignorieren unversionierter Objekte“ für weitergehende Informationen.

--no-unlock

Teilt Subversion mit, Dateien nicht automatisch zu entsperren (das Standardverhalten nach der Übergabe ist es, alle Dateien, die übergeben wurden, zu entsperren). Siehe „Sperren“ für weitergehende Informationen.

--non-recursive (-N)

Überholt. Verhindert, dass ein Unterbefehl rekursiv auf Unterverzeichnisse angewendet wird. Die meisten Unterbefehle verhalten sich standardmäßig rekursiv, doch einige nicht. Anwender sollten diese Option vermeiden und stattdessen die präzisere Option --depth verwenden. Bei den meisten Unterbefehlen führt die --non-recursive zu demselben Verhalten wie die Angabe von --depth=files, es gibt jedoch Ausnahmen: das nicht-rekursive svn status arbeitet auf der Tiefe immediates, und die nicht-rekursiven Formen von svn revert, svn add und svn commit arbeiten auf der Tiefe empty.

--notice-ancestry

Berücksichtigt beim Ermitteln von Unterschieden die Abstammung.

--old ARG

Verwendet ARG als das ältere Ziel (in Verbindung mit svn diff).

--parents

Erzeugt und fügt im Rahmen einer Operation nicht existierende oder unversionierte Elternverzeichnisse der Arbeitskopie oder dem Projektarchiv hinzu. Das ist nützlich, um automatisch mehrere Unterverzeichnisse zu erzeugen, wo aktuell keine existieren. Wenn es auf einen URL angewendet wird, werden alle Verzeichnisse bei einer einzigen Übergabe erzeugt.

--quiet (-q)

Fordert den Client auf, nur die wichtigsten Informationen beim Ausführen einer Operation auszugeben.

--record-only

Markiert Revisionen als zusammengeführt; zur Verwendung mit --revision (-r).

--recursive (-R)

Veranlasst einen Unterbefehl, rekursiv Unterverzeichnisse zu durchlaufen. Die meisten Unterbefehle machen das standardmäßig.

--reintegrate

Bei Verwendung mit dem Unterbefehl svn merge werden alle Änderungen des Quell-URL mit der Arbeitskopie zusammengeführt. Für Details siehe „Einen Zweig synchron halten“.

--relocate FROM TO [PATH...]

Bei Verwendung mit dem Unterbefehl svn switch wird der Ort des Projektarchivs geändert, auf den sich Ihre Arbeitskopie bezieht. Das ist dann nützlich, wenn sich der Ort Ihres Projektarchivs ändert und Sie eine bestehende Arbeitskopie haben, die Sie weiterverwenden möchten. Für weitere Details sowie ein Beispiel siehe svn switch (sw).

--remove ARG

Entfernt ARG aus einer Änderungsliste.

--revision (-r) REV

Zeigt an, dass Sie eine Revision (oder ein Revisionsintervall) für eine bestimmte Operation angeben. Sie können der Option dazu Revisionsnummern, Schlüsselworte oder Daten (innerhalb von geschweiften Klammern) als Argument übergeben. Wenn Sie ein Revisionsintervall angeben möchten, können Sie zwei durch einen Doppelpunkt getrennte Revisionen übergeben. Zum Beispiel:

$ svn log -r 1729
$ svn log -r 1729:HEAD
$ svn log -r 1729:1744
$ svn log -r {2001-12-04}:{2002-02-17}
$ svn log -r 1729:{2002-02-17}

Für weitere Informationen siehe „Revisions-Schlüsselworte“.

--revprop

Wirkt auf eine Revisions-Eigenschaft anstatt auf eine datei- oder verzeichnisspezifische Eigenschaft. Diese Option erfordert die Angabe einer Revision mit der Option --revision (-r).

--set-depth ARG

Setzt die Wirktiefe eines Verzeichnisses in der Arbeitskopie auf einen der Werte exclude, empty, files, immediates oder infinity. Für eine detaillierte Erörterung derer Bedeutung und wie diese Option zu verwenden ist, siehe „Verzeichnis-Teilbäume“.

--show-revs ARG

Verwendet, um svn mergeinfo mitzuteilen, dass merged (zusammengeführte) oder eligible (in Frage kommende) Revisionen angezeigt werden sollen.

--show-updates (-u)

Teilt dem Client mit, Informationen über die Dateien anzuzeigen, die in Ihrer Arbeitskopie nicht mehr dem neuesten Stand entsprechen. Hierdurch wird keine Ihrer Dateien aktualisiert – es wird nur angezeigt, welche Dateien aktualisiert würden, wenn Sie anschließend svn update verwendeten.

--stop-on-copy

Veranlasst einen Subversion-Unterbefehl, der die Geschichte einer versionierten Ressource durchläuft, mit der Sammlung der Daten aufzuhören, sobald eine Kopie – dass heißt, ein Ort in der Versionsgeschichte, der von einem anderen Ort des Projektarchivs kopiert wurde – angetroffen wird.

--strict

Veranlasst Subversion, eine strenge Semantik anzuwenden, ein ziemlich ungenaues Konzept, es sei denn, es betrifft bestimmte Unterbefehle (und zwar svn propget).

--summarize

Statt detaillierter Ausgabe nur grob zusammengefasste Informationen über die Operation anzeigen.

--targets FILENAME

Teilt Subversion mit, zusätzliche Zielpfade für die Operation aus FILENAME zu lesen. FILENAME soll einen Pfad pro Zeile beinhalten, wobei dieselbe Zeichenkodierung und Formatierung erwartet wird, die auch direkt als Kommandozeilenargument angegeben worden wäre.

--use-merge-history (-g)

Zusätzliche Informationen aus der Geschichte der Zusammenführungen wird verwendet oder angezeigt.

--verbose (-v)

Fordert den Client auf, beim Ausführen eines Unterbefehls soviel Information auszugeben, wie er kann. Das kann dazu führen, dass Subversion zusätzliche Felder, detaillierte Informationen zu jeder Datei oder zusätzliche Informationen über seine Tätigkeiten ausgibt.

--version

Gibt die Versionsinformation des Clients aus. Diese Information umfasst nicht nur die Versionsnummer des Clients sondern auch eine Auflistung aller vom Client unterstützten Module für den Zugriff auf ein Subversion-Projektarchiv. Mit --quiet (-q) wird nur die Versionsnummer in Kurzform ausgegeben.

--with-all-revprops

In Verbindung mit der Option --xml von svn log werden alle Revisions-Eigenschaften, sowohl die standardmäßig von Subversion verwendeten als auch etwaige anwenderdefinierte, abgerufen und in der Protokollausgabe angezeigt.

--with-no-revprops

In Verbindung mit der Option --xml von svn log werden alle Revisions-Eigenschaften in der Protokollausgabe unterdrückt, einschließlich der Standard-Protokollnachricht, des Autors und des Zeitstempels der Revision.

--with-revprop ARG

In Verbindung mit einem Befehl, der in das Projektarchiv schreibt, wird die Revisions-Eigenschaft, bei Verwendung des Formats NAME=VALUE, NAME auf den Wert VALUE gesetzt. In Verbindung mit svn log im --xml-Modus wird der Wert von ARG in der Protokollausgabe angezeigt.

--xml

Die Ausgabe erfolgt im XML-Format.

svn-Unterbefehle

Hier sind die verschiedenen Unterbefehle für das Programm svn. Der Kürze halber lassen wir die globalen Optionen (beschrieben in „svn-Optionen“) bei den folgenden Beschreibungen der Unterbefehle aus.