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 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
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.
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.