chapter id="svn-ch-9">

# Subversion - Komplettreferenz

Dieses Kapitel hat die Absicht eine komplette Referenz für Subversion zur Verfügung zu stellen. Dies umfasst den Kommandozeilen-Client (`svn`) mit seinen Subkommandos genauso wie die Administrations-Programme für das Projektarchiv (`svnadmin` und `svnlook`) mit ihren Subkommandos.

# Der Subversion-Kommandozeilen-Client: `svn`

Um den Kommandozeilen-Clienten zu benutzen schreiben sie `svn`, die Subkommandos die sie benutzen wollen Ja, ja, sie brauchen kein Subkommando um den `--version` Optionen zu benutzen, aber zu dem kommen wir in einer Minute. , und alle Optionen oder Ziele mit denen sie arbeiten wollen — es gibt keine spezielle Reihenfolge in der die Subkommandos oder Optionen angeordnet sein müssen. Alle folgenden Beispiele sind gültige Möglichkeiten für `svn status`:

    $ svn -v status
    $ svn status -v
    $ svn status -v myfile

Sie können weitere Beispiele für die meisten Client-Befehle in und Befehle zum Verwalten der Eigenschaften (properties) in finden.

## `svn` Optionen

Obwohl Subversion verschiedene Optionen für die einzelnen Subkommandos hat, sind alle Optionen global — das heisst jede Option hat immer die gleiche Bedeutung, unabhängig vom Subkommando mit der sie gerade verwendet wird. Zum Beispiel bedeutet `--verbose` (`-v`) immer geschwätzige Ausgabe, unabhängig vom Subkommando mit dem es benutzt wird.

`--auto-props`

  Schaltet auto-props ein, überschreibt die `enable-auto-props` Einstellung der `config` Datei.

`--config-dir` DIR

  Weisst Subversion an die Konfiguration vom angegebenen Verzeichnis zu lesen statt vom Standard-Verzeichnis (`.subversion` im Heimatverzeicnis der BenutzerIn).

`--diff-cmd` CMD

  Gibt ein externes Programm an, das verwendet wird um die Unterschiede zwischen Dateien anzuzeigen. Wenn `svn diff` aufgerufen wird verwendet es die interne Unterschieds-Methode von Subversion, welche standardmässig das vereinte Format zur Verfügung stellt. Wenn sie ein externes Programm benutzen wollen, verwenden sie `--diff-cmd`. Sie können Optionen an dieses externe Programm mit der `--extensions` Option übergeben (mehr dazu später in diesem Kapitel).

`--diff3-cmd` CMD

  Gibt ein externes Programm an, um Dateien zusammenzuführen.

`--dry-run`

  Durchläuft alle Schritte des Kommandos, ohne jedoch Änderungen vorzunehmen — weder lokal noch im Projektarchiv.

`--editor-cmd` CMD

  Gibt ein externes Programm an, das verwendet wird um eine Log-Nachricht oder eine Eigenschaft (property) zu bearbeiten.

`--encoding` ENC

  Teilt Subversion den Zeichensatz mit, der für Nachrichten verwendet wird. Standardmässig wird die Einstellung des Betriebssystems übernommen. Sie sollten den Zeichensatz angeben, wenn ihre Nachrichten einen anderen Zeichensatz verwenden.

`--extensions` (`-x`) ARGS

  Gibt ein oder mehrere Argumente an, die von Subversion an ein externes diff Programm weitergegeben werden sollen, wenn Unterschiede zwischen Datein festgestellt werden sollen. Wenn sie mehrere Argumente übergeben wollen, müssen sie diese mit Anführungszeichen zusammenfassen. Zum Beispiel `svn diff --diff-cmd /usr/bin/diff -x "-b -E"`). Diese Option kann nur verwendet werden, wenn sie auch die `--diff-cmd` Option verwenden.

`--file` (`-F`) DATEINAME

  Verwendet den Inhalt der Datei, deren Name in dieser Option angegeben wird, für das jeweilige Subkommando.

`--force`

  Erzwingt die Ausführung eines bestimmten Kommandos. Es gibt einige Operationen, bei welchen Subversion unter normalen Umständen eine Ausführung verhindert, aber sie können Subversion mitteilen Ich weiss was ich mache und über die möglichen Folgen dessen, also lass mich. Diese Option entspricht einer Arbeit an der Elektrik mit eingeschaltetem Strom — wenn sie nicht wissen, was sie tun werden sie einen fürchterlichen Schock bekommen.

`--force-log`

  Erzwingt die Annahme eines fragwürdigen Parameters, welcher an die `--message` (`-m`) oder `--file` (`-F`) Option übergeben wird. Standardmässig wird Subversion einen Fehler erzeugen wenn Parameter an diese Optionen ausschauen, als ob sie Ziele des Subkommandos wären. Zum Beispiel, wenn sie eine Datei die unter Versionskontrolle steht an die `--file` (`-F`) Option, übergeben wird Subversion annehmen, dass sie einen Fehler gemacht haben und dass die Angabe stattdessen als Ziel der Operation gedacht war und dass sie einfach vergessen haben eine andere — nicht unter Versionskontrolle stehende — Datei als Eingabequelle für ihre Log-Nachricht anzugeben. Um ihre Absicht zu bekräftigen und um diese Art von Fehlermeldung zu umgehen geben sie die `--force-log` Option bei Kommandos an welche Log-Nachrichten akzeptieren.

`--help` (`-h` or `-?`)

  Wenn diese Option mit einem oder mehreren Subkommandos verwendet wird, dann wird die eingebaute Hilfe für jedes Subkommando angezeigt. Wenn sie Option alleine benutzt wird, dann wird ein allgemeiner Hilfe-Text des Client angezeigt.

`--ignore-ancestry`

  Ignoriert die Abstammung einer Datei, wenn Unterschiede ermittelt werden (zieht nur den Inhalt zur Ermittlung der Unterschiede heran).

`--incremental`

  Verwendet ein Ausgabeformat, das zur Verkettung geeignet ist.

`--message` (`-m`) MESSAGE

  Erfordert, dass sie eine nach dieser Option eine Nachricht auf der Kommandozeile angeben. Zum Beispiel:

      $ svn commit -m "Hier steht eine wichtige Information."

`--new` ARG

  Verwende ARG als neueres Ziel.

`--no-auth-cache`

  Verhindert das Zwischenspeichern von Authentifizierungsinformationen (z.B. Benutzername und Passwort) in den administrativen Verzeichnissen von Subversion .

`--no-auto-props`

  Schaltet auto-props ab. Überschreibt die `enable-auto-props` Direktive aus der `config` Datei.

`--no-diff-deleted`

  Verhindert, dass Subversion Differenzen für gelöschte Dateien ausgibt. Das Standardverhalten für `svn diff` bei gelöschten Dateien ist, dass die Unterschiede so ausgegeben werden, als wenn die Datei vorhanden, aber leer wäre.

`--no-ignore`

  Zeigt Dateien in der Statusanzeige, die normalerweise weggelassen würden, weil sie auf ein Muster in der svn:ignore Eigenschaft passen. Siehe auch .

`--non-interactive`

  Verhindert im Falle eines Authentifizierungs-Fehlers oder unzureichender Berechtigungen dass Berechtigungsinformationen (z.B. Benutzername und Passwort) angefordert werden. Das ist hilfreich, wenn Subversion in einem automatischen Stapel läuft und ein scheitern von Subversion sinnvoller ist, als dass zusätzliche Informationen angefordert werden.

`--non-recursive` (`-N`)

  Hält ein Subkommando davon ab die Unterverzeichnisse rekursiv abzuarbeiten. Die meisten Subkommandos durchlaufen standardmässig alle Unterverzeichnisse, aber einige — vor allem solche, die möglicherweise lokale Änderungen entfernen oder rückgängig machen — tun dies nicht.

`--notice-ancestry`

  Berücksichtige die Abstammung, wenn Unterschiede ermittelt werden.

`--old` ARG

  Verwende ARG als älteres Ziel.

`--password` PASS

  Erfordert, dass sie ihr Passwort zur Authentifizierung auf der Kommandozeile angeben — andernfalls wird Subversion danach fragen.

`--quiet` (`-q`)

  Weist das Programm an nur unverzichtbare Infomationen während der Ausführung einer Operationen anzuzeigen.

`--recursive` (`-R`)

  Weist ein Subkommando an die Unterverzeichnisse mit einzubeziehen. Die meisten Subkommandos machen dies standardmässig.

`--relocate` FROM TO [PATH...]

  Wird mit dem `svn switch` Subkommando benutzt und wechselt die Ortsangabe des Projektarchives auf den die Arbeitskopie verweist. Das ist hilfreich, wenn sich der Ort des Projektarchives ändert und sie eine bestehende Arbeitskopie haben, die sie weiterverwenden wollen. Siehe Beispiel unter `svn switch`.

`--revision` (`-r`) REV

  Legt fest, dass sie eine Revision (oder einen Bereich von Revisionen) für eine bestimmte Operation verwenden wollen. Sie können Nummern, Schlüsselwörter oder Datumsangaben (in geschwungenen Klammern) als Argument für die Revisions-Option übergeben. Wenn sie einen Bereich von Revisionen verwenden wollen, können sie zwei Revisionen getrennt durch einen Doppelpunkt angeben. 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}

  See for more information.

`--revprop`

  Arbeitet mit einer Eigenschaft für Revisionen anstatt mit einer für Dateien oder Verzeichnisse spezifischen Eigenschaft. Diese Option erfordert, dass sie auch eine Revision mit der `--revision` (`-r`) Option angeben. Siehe für mehr Details über Eigenschaften, die nicht der Versionskontrolle unterliegen.

`--show-updates` (`-u`)

  Veranlasst den Client die Dateien der Arbeitskopie anzuzeigen, die nicht am neuesten Stand sind. Es werden keine Dateien aktualisiert — es zeigt nur an, welche Dateien aktualisiert werden, wenn sie `svn update` ausführen.

`--stop-on-copy`

  Veranlasst ein Subkommando welches die Geschichte einer Einheit, die unter Versionskontrolle steht, durchläuft das Sammeln der Informationen einzustellen, wenn es auf eine Kopie trifft. Das ist dann, wenn die Einheit von einer Stelle im Projektarchiv an eine andere Stelle kopiert wurde.

`--strict`

  Veranlasst Subversion eine strikte Semantik einzuhalten — eine ziemlich unklare Aussage, solange wir nicht ein bestimmtes Subkommando behandeln.

`--targets` DATEINAME

  Weist Subversion an eine Liste von Dateinamen aus der angegebenen Datei zu holen, anstatt die Liste mit den Dateinamen auf der Kommandozeile anzuführen.

`--username` NAME

  Damit können sie ihren Benutzernamen für die Authentifizierung auf der Kommandozeile angeben — andernfalls wird Subversion sie bei Bedarf danach fragen.

`--verbose` (`-v`)

  Weist den Client an so viel Information wie möglich bei der Ausführung eines Subkommandos auszugeben. Dies kann bedeuten, dass zusätzliche Felder, detailiertere Information über jede Datei oder zusätzliche Information abhängig von der jeweiligen Aktion angezeigt werden.

`--version`

  Zeigt die Version des Client an. Diese Information beinhaltet nicht nur die Versionsnummer des Client, sondern auch alle Projektarchiv-Zugriffsmodule die das Programm beherrscht.

`--xml`

  Formatiert die Ausgabe als XML.

## `svn` Subcommands

### svn add

Fügt Dateien und Verzeichnisse hinzu

#### Übersicht

    svn add PATH...

#### Beschreibung

Fügt Dateien und Verzeichnisse zu ihrer Arbeitskopie hinzu und merkt diese für das Hinzufügen zum Projektarchiv vor. Diese Dateien und Verzeichnisse werden beim nächsen übertragen in das Projektarchiv eingefügt. Wenn sie etwas hinzugefügt haben und sie ändern ihre Meinung vor dem Übertragen können sie dies mittels `svn revert` wieder rückgängig machen.

#### Alternative Namen

Keine

#### Ändert

Arbeitskopie

#### Optionen

    --targets DATEINAME
    --non-recursive (-N)
    --quiet (-q)
    --config-dir DIR
    --auto-props
    --no-auto-props

#### Beispiele

Um eine Datei zu ihrer Arbeitskopie hinzuzugügen:

    $ svn add foo.c
    A         foo.c

Wenn sie ein Verzeichnis hinzufügen werden bei `svn add` standardmässig auch die Unterverzeichnisse einbezogen:

    $ svn add testdir
    A         testdir
    A         testdir/a
    A         testdir/b
    A         testdir/c
    A         testdir/d

Sie können auch ein Verzeichnis ohne dessen Dateien hinzufügen:

    $ svn add --non-recursive anderesverz
    A         anderesverz

### svn blame

Zeigt Information über AutorIn und Revision in einer Zeile mit den Dateinamen für die angegebenen Dateien oder URLs.

#### Übersicht

    svn blame ZIEL...

#### Beschreibung

Zeigt Angaben über AutorIn und Revision in der Zeileninformation für die angegebenen Dateien oder URLs. Jede Textzeile enthält am Beginn die Angabe über AutorIn (Benutzername) und die Revisionsnummer der letzten Änderung für diese Zeile.

#### Alternative Namen

praise, annotate, ann

#### Ändert

Nichts

#### Archivzugriff

Ja

#### Optionen

    --revision (-r) REV
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Wenn sie die Zuständigkeit für den Text in readme.txt in ihrem Projektarchiv test sehen wollen:

    $ svn blame http://svn.red-bean.com/repos/test/readme.txt
         3      sally Das ist eine README Datei.
         5      harry Sie sollten das lesen.

### svn cat

Gibt den Inhalt der angegebenen Dateien oder URLs aus.

#### Übersicht

    svn cat ZIEL...

#### Beschreibung

Gibt den Inhalt der angegebenen Dateien oder URLs aus. Für den Inhalt von Verzeichnissen siehe `svn list`.

#### Alternative Namen

Keine

#### Ändert

Nichts

#### Archivzugriff

Ja

#### Optionen

    --revision (-r) REV
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Wenn sie die Datei readme.txt in ihrem Projektarchiv anschauen wollen, ohne die Datei auszuchecken:

    $ svn cat http://svn.red-bean.com/repos/test/readme.txt
    Das ist eine README Datei.
    Sie sollten das lesen.

Wenn ihre Arbeistkopie nicht am neuesten Stand ist (oder sie haben lokale Veränderungen vorgenommen) und sie wollen die `HEAD` Revision einer Datei aus ihrer Arbeitskopie sehen, dann wird `svn cat` automatisch die `HEAD` Revision holen:

    $ cat foo.c
    Diese Datei ist meine lokale Arbeitskopie
    und wurde von mir verändert.

    $ svn cat foo.c
    Letzte Revision frisch vom Projektarchiv!

### svn checkout

Checkt eine Arbeitskopie vom Projektarchiv aus.

#### Übersicht

    svn checkout URL... [PATH]

#### Beschreibung

Checkt eine Arbeitskopie vom Projektarchiv aus. Wenn PATH fehlt, wird der Basisname (letzter Teil) der URL als Ziel verwendet. Wenn mehrere URLs angegeben werden wird jede in ein eigenes Unterverzeichnis von PATH gelegt wobei der Basisnamen der URL als Namen für das Unterverzeichnis verwendet wird.

#### Alternative Namen

co

#### Ändert

Erstellt eine neue Arbeitskopie.

#### Archivzugriff

Ja

#### Optionen

    --revision (-r) REV
    --quiet (-q)
    --non-recursive (-N)
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Checkt eine Arbeitskopie in das Verzeichnis 'mein' aus:

    $ svn checkout file:///tmp/repos/test mein
    A  mein/a
    A  mein/b
    Revision 2 ausgecheckt.
    $ ls
    mine

Checkt 2 verschiedene Verzeichnisse in zwei getrennte Arbeitskopien aus:

    $ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz
    A  test/a
    A  test/b
    Revision 2 ausgecheckt.
    A  quiz/l
    A  quiz/m
    Revision 2 ausgecheckt.
    $ ls
    quiz  test

Checkt 2 verschiedene Verzeichnisse in zwei getrennte Arbeitskopien aus und stellt diese in das Verzeichnis 'arbeitskopien':

    $ svn checkout file:///tmp/repos/test  file:///tmp/repos/quiz arbeitskopien
    A  arbeitskopien/test/a
    A  arbeitskopien/test/b
    Revision 2 ausgecheckt.
    A  arbeitskopien/quiz/l
    A  arbeitskopien/quiz/m
    Revision 2 ausgecheckt.
    $ ls
    arbeitskopien

Wenn sie ein auschecken unterbrechen (oder das auschecken durch irgendetwas anderes unterbrochen wird, wie z.B. ein Zusammenbruch der Verbindung, etc.), können sie dieses fortsetzen, indem sie entweder das gleiche checkout Kommando wiederholen oder indem sie die unvollständige Arbeitskopie mit update auf den letzten Stand bringen.

    $ svn checkout file:///tmp/repos/test test A test/a A test/b ^C svn:
    The operation was interrupted svn: caught SIGINT

    $ svn checkout file:///tmp/repos/test test
    A  test/c
    A  test/d
    ^C
    svn: The operation was interrupted
    svn: caught SIGINT

    $ cd test
    $ svn update
    A  test/e
    A  test/f
    Aktualisiert auf Revision 3.

### svn cleanup

Säubert die Arbeitskopie rekursiv.

#### Übersicht

    svn cleanup [PATH...]

#### Beschreibung

Säubert die Arbeitskopie rekursiv, entfernt Sperren und setzt unvollständige Operationen fort. Wenn sie jemals einen working copy locked Fehler bekommen, sollten sie dieses Kommando ausführen um hängengebliebene Sperren zu beseitigen und um die Arbeitskopie wieder in einen brauchbaren Zustand zu bringen. Siehe auch .

Wenn, aus welchem Grund auch immer, ein `svn update` wegen einem Problem mit einem externen diff Program (z.B. Eingabefehler oder Netzwerkprobleme) fehlgeschlagen ist, dann müssen sie hier die `--diff3-cmd` angeben um cleanup die Möglichkeit zu geben das Zusammenführen mit dem externen diff Programm fortzusetzen. Sie können auch jedes Konfigurations-Verzeichnis mit der `--config-dir` Option angeben, aber sie sollten diese Optionen extrem selten benötigen.

#### Alternative Namen

Keine

#### Ändert

Arbeitskopie

#### Archivzugriff

Nein

#### Optionen

    --diff3-cmd CMD
    --config-dir DIR

#### Beispiele

Nun, da ist nicht viel zu zeigen, weil `svn cleanup` keine Ausgaben erzeugt. Wenn sie keinen PATH angeben wird, `.` verwendet.

    $ svn cleanup

    $ svn cleanup /path/to/working-copy

### svn commit

Überträgt Änderungen ihrer Arbeitskopie an das Projektarchiv.

#### Übersicht

    svn commit [PATH...]

#### Beschreibung

Überträgt Änderungen ihrer Arbeitskopie an das Projektarchiv. Wenn sie keine Log-Nachricht angeben, indem sie entweder die `--file` oder `--message` Option benutzen wird `svn` ihren Editor aufrufen und sie auffordern eine Log-Nachricht zu erstellen. Siehe Abschnitt `editor-cmd` in .

Wenn sie eine Übertragung beginnen und Subversion ruft den Editor auf um eine Nachricht zu erstellen, können sie noch immer abbrechen, ohne ihre Änderungen zu übertragen. Wenn sie die Übertragung abbrechen wollen, dann brauchen sie nur den Editor beenden, ohne ihre Log-Nachricht abzuspeichern und Subversion wird nachfragen, was sie machen wollen: entweder die Übertragung abbrechen, fortsetzen ohne eine Log-Nachricht anzugeben oder die Log-Nachricht nochmals bearbeiten.

#### Alternative Namen

ci (kurz für check in nicht co, welches das Kürzel für checkout ist)

#### Ändert

Arbeitskopie, Projektarchiv

#### Archivzugriff

Ja

#### Optionen

    --message (-m) TEXT
    --file (-F) DATEI
    --quiet (-q)
    --non-recursive (-N)
    --targets DATEINAME
    --force-log
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --encoding ENC
    --config-dir DIR

#### Beispiele

Überträgt eine einfache Änderung einer Datei mit der Log-Nachricht auf der Kommandozeile und dem aktuellen Verzeichnis (`.`) als impliziten Ziel:

    $ svn commit -m "Howto-Abschnitt eingefügt."
    Sending        a
    Transmitting file data .
    Committed revision 3.

Überträgt eine Änderung in der Datei `foo.c` (explicit angegeben auf der Kommandozeile) mit der Log-Nachricht aus der Datei `msg`:

    $ svn commit -F msg foo.c
    Sending        foo.c
    Transmitting file data .
    Committed revision 5.

Wenn sie eine Datei, die unter Versionskontrolle steht für ihre Log-Nachricht mit der `--file` Option verwenden wollen, müssen sie die `--force-log` Option angeben:

    $ svn commit --file datei_unter_vk.txt foo.c
    svn: The log message file is under version control
    svn: Log message file is a versioned file; use '--force-log' to override

    $ svn commit --force-log --file datei_unter_vk.txt foo.c
    Sending        foo.c
    Transmitting file data .
    Committed revision 6.

Um die vorgemerkte Löschung einer Datei zu übertragen:

    $ svn commit -m "Ich entfernte Datei 'c'."
    Deleting       c

    Committed revision 7.

### svn copy

Kopiert eine Datei oder Verzeichnis in einer Arbeitskopie oder im Projektarchiv.

#### Übersicht

    svn copy QUELLE ZIEL

#### Beschreibung

Kopiert eine Datei in einer Arbeitskopie oder im Projektarchiv. QUELLE und ZIEL können entweder eine Arbeitskopie (AK) oder eine URL sein:

AK -> AK

  Kopieren und zum Hinzufügen vormerken (inclusive Historie).

AK -> URL

  Sofort eine Kopie von AK nach URL übertragen.

URL -> AK

  Eine Kopie von URL nach AK auschecken und zum Hinzufügen vormerken.

URL -> URL

  Vollständig serverseitige Kopie. Dies wird üblicherweise für Verzweigung (branch) und Markerung (tag) verwendet.

Sie können Dateien nur innerhalb eines Projektarchives kopieren. Subversion hat keine Unterstützung für das Kopieren zwischen Projektarchiven.

#### Alternative Namen

cp

#### Ändert

Projektarchiv, wenn ZIEL eine URL ist.

Arbeitskopie, wenn Ziel eine Arbeitskopie ist.

#### Archivzugriff

Wenn Quelle oder Ziel im Projektarchiv ist oder wenn es erforderlich ist die Quell-Revisionsnummer zu ermitteln.

#### Optionen

    --message (-m) TEXT
    --file (-F) DATEI
    --revision (-r) REV
    --quiet (-q)
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --force-log
    --editor-cmd EDITOR
    --encoding ENC
    --config-dir DIR

#### Beispiele

Kopiert ein Objekt innerhalb ihrer Arbeitskopie (die lokale Kopie wird sofort erstellt — für das Projektarchiv wird die Aktion nur vorgemerkt und erst durchgeführt, wenn sie die lokalen Änderungen übertragen):

    $ svn copy foo.txt bar.txt
    A         bar.txt
    $ svn status
    A  +   bar.txt

Kopiert ein Objekt von ihrer Arbeitskopie zu einer URL im Projektarchiv (wird sofort übertragen, daher muss eine Log-Nachricht angegeben werden):

    $ svn copy hier.txt file:///tmp/repos/test/weit-weg.txt -m "Langstrecken-Kopie."

    Committed revision 8.

Kopiert ein Objket vom Projektarchiv in die lokale Arbeitskopie (die lokale Kopie wird sofort erstellt — für das Projektarchiv wird die Aktion nur vorgemerkt und erst durchgeführt, wenn sie die lokalen Änderungen übertragen):

Das ist die empfohlene Vorgangsweise um tote Dateien im Projektarchiv wiederzubeleben!

    $ svn copy file:///tmp/repos/test/weit-weg hier
    A         hier

Und zum Abschluss das Kopieren zwischen zwei URLs:

    $ svn copy file:///tmp/repos/test/weit-weg file:///tmp/repos/test/da-hinueber -m "Tele-Kopie."

    Committed revision 9.

Das ist der einfachste Weg um eine Revision in ihrem Projektarchiv mit einer Marke (tag) zu versehen — kopieren sie diese Revision (üblicherweise `HEAD`) einfach mit `svn copy` in ihr tags Verzeichnis.

    $ svn copy file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "markierter Zweig"

    Committed revision 12.

Und machen sie sich keine Sorgen, wenn sie auf das Erstellen der Markierung vergessen haben — sie können immer eine ältere Revision angeben und die Markierung jederzeit nachholen:

    $ svn copy -r 11 file:///tmp/repos/test/trunk file:///tmp/repos/test/tags/0.6.32-prerelease -m "Vergass Marke zu Rev 11"

    Committed revision 13.

### svn delete

Löscht ein Objekt aus der Arbeitskopie oder dem Projektarchiv.

#### Übersicht

    svn delete PFAD...

    svn delete URL...

#### Beschreibung

Objekte, die über PFAD angesprochen werden, werden für das Löschen bei der nächsten Übertragung vorgemerkt. Dateien (und Verzeichnisse, die noch nicht übertragen wurden) werden sofort von der Arbeitskopie entfernt. Das Kommando wird Datein, die nicht unter Versionskontrolle stehen oder die verändert wurden nicht löschen. Verwenden sie die `--force` Option um dieses Verhalten zu ändern.

Objekte die über URL angesprochen werden, werden bei der nächsten Übertragung im Projektarchiv entfernt. Mehrfache URL Angaben werden jede für sich übertragen.

#### Alternative Namen

del, remove, rm

#### Ändert

Arbeitskopie, wenn die Operation mit Dateiangaben durchgeführt wird.

Projektarchiv, wenn die Operation mit URLs durchgeführt wird.

#### Archivzugriff

Nur wenn die Operation mit URLs durchgeführt wird

#### Optionen

    --force
    --force-log
    --message (-m) TEXT
    --file (-F) DATEI
    --quiet (-q)
    --targets DATEINAME
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --editor-cmd EDITOR
    --encoding ENC
    --config-dir DIR

#### Beispiele

Verwenden sie `svn delete` um eine Datei von ihrer Arbeitskopie zu löschen — für das Projektarchiv wird die Aktion nur vorgemerkt und erst durchgeführt, wenn sie die lokalen Änderungen übertragen.

    $ svn delete meinedatei
    D         meinedatei

    $ svn commit -m "Lösche Datei 'meinedatei'."
    Deleting       meinedatei
    Transmitting file data .
    Committed revision 14.

Das Löschen einer URL jedoch geschieht sofort, sodass sie eine Log-Nachricht angeben müssen:

    $ svn delete -m "Lösche Datei 'deinedatei'" file:///tmp/repos/test/deinedatei

    Committed revision 15.

Hier ein Beispiel wie das Löschen einer geänderten Datei durchgesetzt werden kann:

    $ svn delete over-there
    svn: Attempting restricted operation for modified resource
    svn: Use --force to override this restriction
    svn: 'over-there' has local modifications

    $ svn delete --force over-there
    D         over-there

### svn diff

Zeigt die Unterschiede zwischen zwei Dateien.

#### Übersicht

    svn diff [-r N[:M]] [--old ZIEL-ALT] [--new ZIEL-NEU] [PFAD...]

    svn diff -r N:M URL

    svn diff [-r N[:M]] URL1[@N] URL2[@M]

#### Beschreibung

Zeigt die Unterschiede zwischen zwei Dateien. Die drei unterschiedlichen Arten um `svn diff` zu verwenden sind:

`svn diff [-r N[:M]] [--old ZIEL-ALT] [--new ZIEL-NEU] [PFAD...]` zeigt die Unterschiede zwischen ZIEL-ALT und ZIEL-NEU. Wenn PFADe angegeben werden, dann werden diese relativ zum ZIEL-ALT und ZIEL-NEU behandelt und die Ausgabe beschränkt sich auf Unterschiede zwischen diesen Pfaden. ZIEL-ALT and ZIEL-NEU können Pfade in der Arbeitskopie oder URL`[@`REV`]` sein. ZIEL-ALT nutzt standardmässig das aktuelle Arbeitsverzeichnis und ZIEL-NEU nutzt standardmässig ZIEL-ALT. N nutzt standardmässig `BASE` oder wenn ZIEL-ALT eine URL ist, dann `HEAD`. M nutzt standardmässig das aktuelle Arbeitsverzeichnis. Wenn ZIEL-NEU eine URL ist, dann wird standardmässig `HEAD` benutzt. `svn diff -r N` setzt die Revision von ZIEL-ALT auf N, `svn diff -r N:M` setzt ebenfalls die Revision von ZIEL-NEU auf M.

`svn diff -r N:M URL` ist die Kurzform für `svn diff -r N:M --old=URL --new=URL`.

`svn diff [-r N[:M]] URL1[@N] URL2[@M]` ist die Kurzform für `svn diff [-r N[:M]] --old=URL1 --new=URL2`.

Wenn ZIEL eine URL ist, dann können die Revisionen N und M entweder mittels `--revision` oder über die @ Notation angegeben werden.

WENN ZIEL eine Arbeitskopie ist, dann bedeutet die `--revision` Option:

`--revision N:M`

  Der Server vergleicht ZIEL@N und ZIEL@M.

`--revision N`

  Der Client vergleicht ZIEL@N mit der Arbeitskopie.

`(keine --revision)`

  Der Client vergleicht Basis und Arbeitskopien von ZIEL.

Wenn die alternate Syntax benutzt wird, vergleicht der Server URL1 und URL2 in den Revisionen N bzw M. Wenn entweder N oder M weggelassen werden, wird `HEAD` angenommen.

Standardmässig ignoriert, `svn diff` die Abstammung von Dateien und vergleicht nur den Inhalt Wenn sie `--notice-ancestry` angeben, wird die Abstammung der betroffenen Dateien berücksichtigt, wenn Revisionen verglichen werden (das ist, wenn sie `svn diff` für zwei Dateien mit gleichem Inhalt, aber verschiedener Abstammung verwenden, wird der ganze Inhalt der Datei so angezeigt, als ob er zuerst gelöscht und dann wieder hinzugefügt worden wäre).

#### Alternative Namen

di

#### Ändert

Nichts

#### Archivzugriff

Bei Vergleichen mit etwas anderem als der `BASIS` Revision in ihrer Arbeitskopie

#### Optionen

    --revision (-r) REV
    --old ZIEL-ALT
    --new ZIEL-NEU
    --extensions (-x) "ARGS"
    --non-recursive (-N)
    --diff-cmd CMD
    --notice-ancestry
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --no-diff-deleted
    --config-dir DIR

#### Beispiele

Vergleicht `BASIS` mit ihrer Arbeitskopie (eine der häufigsten Anwendungen von `svn diff`):

    $ svn diff COMMITTERS
    Index: COMMITTERS
    ===================================================================
    --- COMMITTERS	(Revision 4404)
    +++ COMMITTERS	(Arbeitskopie)

Vergleicht wie sich ihre Arbeitskopie von einer älteren Revision unterscheiden:

    $ svn diff -r 3900 COMMITTERS
    Index: COMMITTERS
    ===================================================================
    --- COMMITTERS	(Revision 3900)
    +++ COMMITTERS	(Arbeitskopie)

Vergleiche Revision 3000 mit Revision 3500 unter Verwendung der @ Syntax:

    $ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500
    Index: COMMITTERS
    ===================================================================
    --- COMMITTERS	(Revision 3000)
    +++ COMMITTERS	(Revision 3500)
    …

Vergleiche Revision 3000 mit Revision 3500 unter Verwendung einer Bereichsangabe (sie übergeben in diesem Fall nur eine URL):

    $ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS
    Index: COMMITTERS
    ===================================================================
    --- COMMITTERS	(Revision 3000)
    +++ COMMITTERS	(Revision 3500)

Vergleiche Revision 3000 mit Revision 3500 für alle Dateien in `trunk` unter Verwendung einer Bereichsangabe:

    $ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk

Vergleiche Revision 3000 mit Revision 3500 für nur drei Dateien in `trunk` unter Verwendung einer Bereichsangabe:

    $ svn diff -r 3000:3500 --old http://svn.collab.net/repos/svn/trunk COMMITTERS README HACKING

Wenn sie eine Arbeitskopie haben, können sie die Unterschiede erhalten ohne die langen URLs anzugeben:

    $ svn diff -r 3000:3500 COMMITTERS
    Index: COMMITTERS
    ===================================================================
    --- COMMITTERS	(Revision 3000)
    +++ COMMITTERS	(Revision 3500)

Verwenden sie `--diff-cmd` CMD `-x` um Argumente direkt an das externe diff Programm zu übergeben

    $ svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS
    Index: COMMITTERS
    ===================================================================
    0a1,2
    > Das ist ein Text
    >

### svn export

Exportiert einen sauberen Verzeichnisbaum.

#### Übersicht

    svn export [-r REV] URL [PFAD]

    svn export PFAD1 PFAD2

#### Beschreibung

Die erste Form exportiert einen sauberen, durch URL festgelegten Verzeichnisbaum, vom Projektarchiv und zwar in der Revision REV sofern angegeben, andernfalls wird `HEAD` verwendet, nach PFAD. Wenn PFAD weggelassen wird, dann wird die letze Komponente von URL als Name für das lokale Verzeichnis genommen.

Die zweite Form exportiert einen sauberen Verzeichnisbaum von der Arbeitskopie PFAD1 nach PFAD2. Alle lokalen Änderungen bleiben erhalten, aber Dateien die nicht unter Versionskontrolle stehen werden nicht kopiert.

#### Alternative Namen

Keine

#### Ändert

Lokale Platte

#### Archivzugriff

Nur wenn von einer URL export wird

#### Optionen

    --Revision (-r) REV
    --quiet (-q)
    --force
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Exportiert von ihrer Arbeitskopie (zeigt keine Dateien und Verzeichnise an):

    $ svn export eine-ak mein-export
    Export komplett.

Exportiert direkt vom Projektarchiv (zeigt alle Dateien und Verzeichnisse an):

    $ svn export file:///tmp/repos mein-export
    A  mein-export/test
    A  mein-export/quiz
    …
    Revision 15 exportiert.

### svn help

Hilfe!

#### Übersicht

    svn help [SUBKOMMANDO...]

#### Beschreibung

Ihr bester Freund wenn sie Subversion benutzen und dieses Buch nicht in Reichweite ist!

#### Alternative Namen

?, h

#### Ändert

Nichts

#### Archivzugriff

Nein

#### Optionen

    --version
    --quiet (-q)

### svn import

Überträgt rekursiv eine Kopie von PFAD nach URL.

#### Übersicht

    svn import [PFAD] URL

#### Beschreibung

Überträgt rekursiv eine Kopie von PFAD nach URL. Wenn PFAD weggelassen wird, dann wird `.` angenommen. Fehlende Elternverzeichnisse im Projektarchiv werden angelegt.

#### Alternative Namen

Keine

#### Ändert

Projektarchiv

#### Archivzugriff

Ja

#### Optionen

    --message (-m) TEXT
    --file (-F) DATEI
    --quiet (-q)
    --non-recursive (-N)
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --force-log
    --editor-cmd EDITOR
    --encoding ENC
    --config-dir DIR
    --auto-props
    --no-auto-props

#### Beispiele

Importiert das lokale Verzeichnis `meinproj` in das Basisverzeichnis des Projektarchives:

    $ svn import -m "Neuer Import" meinproj http://svn.red-bean.com/repos/test
    Adding         meinproj/beispiel.txt
    …
    Übertrage Daten .........
    Revision 16 übertragen.

Importiert das lokale Verzeichnis `meinproj` nach `trunk/vendors` in ihrem Projektarchiv. Das Verzeichnis `trunk/vendors` muss vor dem Import nicht existieren — `svn import` wird fehlende Verzeichnisse rekurisv anlegen:

    $ svn import -m "Neuer import" meinproj \
        http://svn.red-bean.com/repos/test/trunk/vendors/meinproj
    Hinzufügen         meinproj/beispiel.txt
    …
    Übertrage Daten .........
    Revision 19 übertragen.

### svn info

Zeigt Information über PFADe.

#### Übersicht

    svn info [PFAD...]

#### Beschreibung

Zeigt Information über Pfade in ihrer Arbeitskopie, inclusive:

- Pfad

- Name

- URL

- Revision

- Kotentyp

- Letzt. AutorIn

- Letzte Revision

- Letztes Änderungsdatum

- Text zuletzt geändert

- Eigenschaften zuletzt geändert

- Prüfsumme

#### Alternative Namen

Keine

#### Ändert

Nichts

#### Archivzugriff

Nein

#### Optionen

    --targets DATEINAME
    --recursive (-R)
    --config-dir DIR

#### Beispiele

`svn info` zeigt alle nützlichen Informationen die es von Objekten in ihrer Arbeitskopie hat an. Für Dateien wird angezeigt:

    $ svn info foo.c
    Pfad: foo.c
    Name: foo.c
    URL: http://svn.red-bean.com/repos/test/foo.c
    Revision: 4417
    Knotentyp: file
    Vorgemerkt: normal
    Letzt. AutorIn: sally
    Letzte Revision: 20
    Letztes Änderungsdatum: 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003)
    Text zuletzt geändert: 2003-01-16 21:18:16 -0600 (Thu, 16 Jan 2003)
    Eigenschaften zuletzt geändert: 2003-01-13 21:50:19 -0600 (Mon, 13 Jan 2003)
    Prüfsumme: /3L38YwzhT93BWvgpdF6Zw==

Für Verzeichnisse wird angezeigt:

    $ svn info vendors
    Pfad: trunk
    URL: http://svn.red-bean.com/repos/test/vendors
    Revision: 19
    Knotentyp: directory
    Vorgemerkt: normal
    Letzt. AutorIn: harry
    Letzte Revision: 19
    Letztes Änderungsdatum: 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003)

### svn list

Listet Vereichniseinträge im Projektarchiv.

#### Übersicht

    svn list [ZIEL...]

#### Beschreibung

Listet jede ZIEL Datei und den Inhalt von jedem ZIEL Verzeichnis so wie sie im Projektarchiv existieren. Wenn ZIEL eine Arbeitskopie ist, dann wird die dazugehörige Projektarchiv URL benutzt.

Standardmässig wird ZIEL `.` verwendet, also die Projektarchiv URL vom aktuellen Verzeichnis der Arbeitskopie.

Mit `--verbose`, werden folgende Statusfelder angezeigt:

- Revisionsnumber der letzten Übertragung

- AutorIn der letzten Übertragung

- Grösse (in Bytes)

- Datum und Uhrzeit der letzen Übertragung

#### Alternative Namen

ls

#### Ändert

Nichts

#### Archivzugriff

Ja

#### Optionen

    --Revision (-r) REV
    --verbose (-v)
    --recursive (-R)
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

`svn list` ist meist dann hilfreich, wenn sie sehen wollen welche Dateien ein Projektarchiv hat ohne eine Arbeitskopie herunterzuladen:

    $ svn list http://svn.red-bean.com/repos/test/support
    README.txt
    INSTALL
    examples/
    …

Im Unterschied zum UNIX `ls`, können sie die `--verbose` Option für zusätzliche Information verwenden:

    $ svn list --verbose file:///tmp/repos
         16 sally         28361 Jan 16 23:18 README.txt
         27 sally             0 Jan 18 15:27 INSTALL
         24 harry               Jan 18 11:27 examples/

For further details, see .

### svn log

Zeigt die Log-Nachrichten.

#### Übersicht

    svn log [PFAD]

    svn log URL [PFAD...]

#### Beschreibung

Standardmässig wird als Ziel das aktuelle Verzeichnis genommen. Wenn keine Argumente angegeben werden, dann zeigt `svn log` die Log-Nachrichten von allen Dateien und Verzeichnissen im aktuellen Arbeitsverzeichnis ihrer Arbeitskopie. Sie können das Ergebnis verfeinern indem sie einen Pfad, eine oder mehrere Revisionen oder jede Kombination von beiden angeben. Der standardmässige Revisionsbereich ist `BASE:1`.

Wenn sie eine einzelne URL angeben, dann werden die Log-Nachrichten für alles angezeigt, was in und unterhalb dieser URL liegt. Wenn sie nach der URL auch Pfade angeben, dann werden nur die Log-Nachrichten für diese Pfade unter der URL angezeigt. Der standardmässige Revisionsbereich für eine URL ist `HEAD:1`.

Mit `--verbose` wird `svn log` auch alle betroffenen Pfade zu jeder Log-Nachricht anzeigen. Mit `--quiet` wird `svn log` den eigentlichen Nachrichtentext selbst nicht anzeigen (das ist kombinierbar mit `--verbose`).

Jede Log-Nachricht wird nur einmal ausgegeben, selbst dann, wenn expizit mehrere Pfade für eine Revision angefordert werden. Standardmässig erlaubt `svn log` die Verfolgung der Kopier-Historie. Benutzen sie `--stop-on-copy` um dieses Verhalten abzustellen, was sinnvoll sein kann um die Auflistung bei Abzweigungen (branches) anzuhalten.

#### Alternative Namen

Keine

#### Ändert

Nichts

#### Archivzugriff

Ja

#### Optionen

    --Revision (-r) REV
    --quiet (-q)
    --verbose (-v)
    --targets DATEINAME
    --stop-on-copy
    --incremental
    --xml
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Sie können die Log-Nachrichten für alle geänderten Pfade in ihrer Arbeitskopie einsehen, indem sie `svn log` im höchsten Verzeichnis aufrufen:

    $ svn log
    ------------------------------------------------------------------------
    r20 | harry | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line

    Tweak.
    ------------------------------------------------------------------------
    r17 | sally | 2003-01-16 23:21:19 -0600 (Thu, 16 Jan 2003) | 2 lines
    …

Zeigt alle Log-Nachrichten für eine einzelne Datei ihrer Arbeitskopie:

    $ svn log foo.c
    ------------------------------------------------------------------------
    r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

    Feinheiten hinzugefügt.
    ------------------------------------------------------------------------
    r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
    …

Wenn sie keine Arbeitskopie bei der Hand haben, können sie eine URL verwenden:

    $ svn log http://svn.red-bean.com/repos/test/foo.c
    ------------------------------------------------------------------------
    r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

    Feinheiten hinzugefügt.
    ------------------------------------------------------------------------
    r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
    …

Wenn sie verschiedene Pfade unterhalb der gleichen URL, können sie die `URL [PFAD...]` Syntax verwenden.

    $ svn log http://svn.red-bean.com/repos/test/ foo.c bar.c
    ------------------------------------------------------------------------
    r32 | sally | 2003-01-13 16:43:13 -0600 (Mon, 13 Jan 2003) | 1 line

    Feinheiten hinzugefügt.
    ------------------------------------------------------------------------
    r31 | harry | 2003-01-10 12:25:08 -0600 (Fri, 10 Jan 2003) | 1 line

    Neue Datei bar.c hinzugefügt.
    ------------------------------------------------------------------------
    r28 | sally | 2003-01-07 21:48:33 -0600 (Tue, 07 Jan 2003) | 3 lines
    …

Das hat den gleichen Effekt wie wenn beide URLs in der Kommandozeile angegeben werden:

    $ svn log http://svn.red-bean.com/repos/test/foo.c \
              http://svn.red-bean.com/repos/test/bar.c
    …

Wenn sie die Ergebnisse mehrerer Aufrufe verketten wollen, dann ist die `--incremental` hilfreich. `svn log` zeigt normalerweise eine strichlierte Zeile am Beginn der Ausgabe und nach jeder einzelnen Log-Nachricht. Wenn sie `svn log` für den Bereich von zwei Revisionen aufrufen, würden sie das erhalten:

    $ svn log -r 14:15
    ------------------------------------------------------------------------
    r14 | ...

    ------------------------------------------------------------------------
    r15 | ...

    ------------------------------------------------------------------------

Wenn sie zwei nicht direkt aufeinanderfolgende Log-Nachrichten in eine Datei ausgeben wollen, dann machen sie das eventuell so:

    $ svn log -r 14 > mylog
    $ svn log -r 19 >> mylog
    $ svn log -r 27 >> mylog
    $ cat mylog
    ------------------------------------------------------------------------
    r14 | ...

    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    r19 | ...

    ------------------------------------------------------------------------
    ------------------------------------------------------------------------
    r27 | ...

    ------------------------------------------------------------------------

Sie können die unnötige zweifache Ausgabe der strichlierten Linien vermeiden, indem sie die `--incremental` Option verwenden:

    $ svn log --incremental -r 14 > mylog
    $ svn log --incremental -r 19 >> mylog
    $ svn log --incremental -r 27 >> mylog
    $ cat mylog
    ------------------------------------------------------------------------
    r14 | ...

    ------------------------------------------------------------------------
    r19 | ...

    ------------------------------------------------------------------------
    r27 | ...

Die `--incremental` Option erzeugt eine ähnliche Ausgabe, wenn sie die `--xml` Option verwenden.

Wenn sie `svn log` auf einen bestimmten Pfad und eine bestimmte Revision anwenden und sie bekommen überhaupt keine Ausgabe

    $ svn log -r 20 http://svn.red-bean.com/untouched.txt
    ------------------------------------------------------------------------

Dann bedeutet das, dass dieser Pfad in dieser Revision nicht verändert wurde. Wenn sie von der höchsten Ebene des Projektarchives oder wenn sie die Datei kennen, die sich in dieser Revision geändert hat, dann können sie das explizit angeben:

    $ svn log -r 20 geaendert.txt
    ------------------------------------------------------------------------
    r20 | sally | 2003-01-17 22:56:19 -0600 (Fri, 17 Jan 2003) | 1 line

    Es wurde dies und das geändert.
    ------------------------------------------------------------------------

### svn merge

Übertrage die Unterschiede zwischen zwei Quellen auf einen Pfad in der Arbeitskopie.

#### Übersicht

    svn merge QuellURL1[@N] QuellURL2[@M] [AKPFAD]

    svn merge -r N:M QUELLE [PFAD]

#### Beschreibung

In der ersten Form werden die URLs der Quellen für die Revisionen N und M angegeben. Das sind die zwei Quellen die verglichen werden. Wenn die Revisionen weggelassen werden, dann wird standardmässig `HEAD` genommen.

In der zweiten Form kann QUELLE eine URL oder ein Objekt aus der Arbeitskopie sein, wofür die korrespondiertende URL ermittelt wird. Diese URL, in den Revisionen N und M legt fest welche zwei Quellen verglichen werden.

AKPFAD ist der Pfad der Arbeitskopie, auf welchen die Änderungen übertragen werden. Wenn AKPFAD weggelassen wird, dann wird `.` angenommen, ausser die Quellen haben den gleichen Basisnamen, welcher auf eine Datei in `.` passt: in diesem Fall werden die Unterschiede auf diese Datei übertragen.

Im Unterschied zu `svn diff` nimmt das merge Kommando beim Zusammenführen Rücksicht auf die Abstammung einer Datei. Das ist sehr wichtig, wenn sie Unterschiede von einem Zweig (branch) in einen anderen Zweig übertragen und sie haben eine Datei in einem Zweig umbenannt und im anderen Zweig aber nicht.

#### Alternative Namen

Keine

#### Ändert

Arbeitskopie

#### Archivzugriff

Nur wenn mit URLs gearbeitet wird

#### Optionen

    --Revision (-r) REV
    --non-recursive (-N)
    --quiet (-q)
    --force
    --dry-run
    --diff3-cmd CMD
    --ignore-ancestry
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Überträgt die Änderungen aus einem Nebenzweig (branch) zurück zum offiziellen Hauptzweig (trunk). Für das Beispiel wird angenommen, dass sie eine Arbeitskopie des Hauptzweiges haben und dass der Nebenzweig in Revision 250 erstellt wurde:

    $ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/mein-zweig
    U  meinproj/tiny.txt
    U  meinproj/thhgttg.txt
    U  meinproj/win.txt
    U  meinproj/flo.txt

Wenn die Abzweigung bei Revision 23 erfolgte und sie wollen die Änderungen aus dem Hauptzweig auf ihren Nebenzweig übertragen, dann können sie dies von der Arbeitskopie ihres Nebenzweiges aus erledigen:

    $ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
    U  meinproj/thhgttg.txt
    …

Um Änderungen einer einzelnen Datei zu übertragen:

    $ cd meinproj
    $ svn merge -r 30:31 thhgttg.txt
    U  thhgttg.txt

### svn mkdir

Erzeugt ein neues Verzeichnis unter Versionskontrolle.

#### Übersicht

    svn mkdir PFAD...

    svn mkdir URL...

#### Beschreibung

Erzeugt ein Verzeichnis unter Angabe von einem PFAD oder einer URL. Lokale Änderungen werden sofort durchgeführt, für das Projektarchiv wird die Aktion aber nur vorgemerkt und erst durchgeführt, wenn sie die lokalen Änderungen übertragen. Ein Verzeichnis, das eine URL im Projektarchiv angegeben wurde wird durch eine sofortige Übertragung gleich angelegt. Mehrere URLs werden getrennt übertragen. In beiden Fällen müssen die darüberliegenden Verzeichnisse bereits existieren.

#### Alternative Namen

Keine

#### Ändert

Arbeitskopie, das Projektarchiv wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --message (-m) TEXT
    --file (-F) DATEI
    --quiet (-q)
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --editor-cmd EDITOR
    --encoding ENC
    --force-log
    --config-dir DIR

#### Beispiele

Erstellt ein Verzeichnis in ihrer Arbeitskopie:

    $ svn mkdir neudir
    A         neudir

Erzeugt ein Verzeichnis im Projektarchiv (sofortige Übertragung, daher ist eine Log-Nachricht erforderlich):

    $ svn mkdir -m "Erstelle ein neues Verzeichnis." http://svn.red-bean.com/repos/neudir

    Revision 26 übertragen.

### svn move

Verschiebt eine Datei oder Verzeichnis.

#### Übersicht

    svn move QUELLE ZIEL

#### Beschreibung

Das Kommando verschiebt eine Datei oder Verzeichnis in ihrer Arbeitskopie oder im Projektarchiv.

Das Kommando hat die gleiche Auswirkung wie ein `svn copy` gefolgt von einem `svn delete`.

Subversion unterstützt nicht das Verschieben zwischen Arbeitskopie und URLs. Zusätzlich können sie Dateien nur innerhalb eines einzelnen Projektarchives verschieben — Subversion unterstützt keine Verschiebungen über die Grenzen eines Projektarchives hinweg.

AK -> AK

  Verschiebt und merkt eine Datei oder Verzeichnis zum Hinzufügen vor (mit Historie).

URL -> URL

  Ausschliesslich serverseitige Namensänderung.

#### Alternative Namen

mv, rename, ren

#### Ändert

Arbeitskopie, Projektarchiv wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --message (-m) TEXT
    --file (-F) DATEI
    --Revision (-r) REV
    --quiet (-q)
    --force
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --editor-cmd EDITOR
    --encoding ENC
    --force-log
    --config-dir DIR

#### Beispiele

Verschiebt eine Datei in ihrer Arbeitskopie:

    $ svn move foo.c bar.c
    A         bar.c
    D         foo.c

Verschiebt eine Datei im Projektarchiv (sofortige Übertragung, daher ist eine Log-Nachricht erforderlich):

    $ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c \
                                http://svn.red-bean.com/repos/bar.c

    Revision 27 übertragen.

### svn propdel

Entferne eine Eigenschaft von einem Objekt.

#### Übersicht

    svn propdel PROPNAME [PFAD...]

    svn propdel PROPNAME --revprop -r REV [URL]

#### Beschreibung

Entfernt Eigenschaften von Dateien, Verzeichnissen oder Revisionen. Die erste Form entfernt Eigenschaften mit Versionskontrolle in der Arbeitskopie, während die zweite Eigenschaften ohne Versionskontrolle in einer Revision des Projektarchives entfernt.

#### Alternative Namen

pdel, pd

#### Ändert

Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --quiet (-q)
    --recursive (-R)
    --Revision (-r) REV
    --revprop
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Löscht eine Eigenschaft von einer Datei in ihrer Arbeitskopie.

    $ svn propdel svn:mime-type  irgendein-script
    Eigenschaft 'svn:mime-type' gelöscht von 'irgendein-script'.

Löscht die Eigenschaft einer Revisions:

    $ svn propdel --revprop -r 26 release-date
    Eigenschaft 'release-date' gelöscht von Projektarchiv Revision '26'

### svn propedit

Bearbeitet die Eigenschaft von einem oder mehreren Objekten unter Versionskontrolle.

#### Übersicht

    svn propedit PROPNAME PFAD...

    svn propedit PROPNAME --revprop -r REV [URL]

#### Beschreibung

Bearbeitet eine oder mehrere Eigenschaften unter Benutzung ihres bevorzugten Editors. Die erste Form bearbeitet Eigenschaften mit Versionskontrolle in ihrer Arbeitskopie, während die zweite Form Eigenschaften ohne Versionskontrolle in einer Revision des Projektarchives bearbeitet.

#### Alternative Namen

pedit, pe

#### Ändert

Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --Revision (-r) REV
    --revprop
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --encoding ENC
    --editor-cmd EDITOR
    --config-dir DIR

#### Beispiele

`svn propedit` macht es leicht Änderungen an Eigenschaften, die mehreren Werte halten können, vorzunehmen:

    $ svn propedit svn:keywords  foo.c
        <svn wird hier ihren bevorzugten Editor aufrufen und zwar mit
        einem geöffnetem Buffer, welcher die aktuellen Werte der
        svn:keywords Eigenschaft enthält.  Sie können hier mehrere Werte
        zu einer Eigenschaft hinzufügen, indem sie einfach einen Wert pro
        Zeile eingeben.>
    Setze neuen Wert für die Eigenschaft 'svn:keywords' von 'foo.c'

### svn propget

Zeigt den Wert einer Eigenschaft.

#### Übersicht

    svn propget PROPNAME [PFAD...]

    svn propget PROPNAME --revprop -r REV [URL]

#### Beschreibung

Zeigt den Wert einer Eigenschaft von Dateien, Verzeichnissen oder Revisionen. Die erste Form zeigt Eigenschaften unter Versionskontrolle in ihrer Arbeitskopie, während die zweite Form Eigenschaften ohne Versionskontrolle in einer Revision des Projektarchives zeigt. Siehe für mehr Information über Eigenschaften.

#### Alternative Namen

pget, pg

#### Ändert

Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --recursive (-R)
    --Revision (-r) REV
    --revprop
    --strict
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Zeigt eine Eigenschaft von einer Datei in ihrer Arbeitskopie:

    $ svn propget svn:keywords foo.c
    Author
    Date
    Rev

Das gleiche für eine Eigenschaft einer Revision:

    $ svn propget svn:log --revprop -r 20
    Beginn eines Berichtes.

### svn proplist

Zeigt eine Liste aller Eigenschaften.

#### Übersicht

    svn proplist [PFAD...]

    svn proplist --revprop -r REV [URL]

#### Beschreibung

Zeigt alle Eigenschaften von einer Datei, Verzeichniss oder Revision. Die erste Form zeigt Eigenschaften unter Versionskontrolle in ihrer Arbeitskopie, während die zweite Form Eigenschaften ohne Versionskontrolle in einer Revision des Projektarchives zeigt.

#### Alternative Namen

plist, pl

#### Ändert

Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --verbose (-v)
    --recursive (-R)
    --Revision (-r) REV
    --quiet (-q)
    --revprop
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Sie können proplist verwenden um die Eigenschaften eines Objektes in ihrer Arbeitskopie einzusehen:

    $ svn proplist foo.c
    Properties on 'foo.c':
      svn:mime-type
      svn:keywords
      owner

Aber so richtig nützlich wird svn proplist mit der `--verbose` option, weil es dann auch die Werte für die Eigenschaften anzeigt:

    $ svn proplist --verbose foo.c
    Properties on 'foo.c':
      svn:mime-type : text/plain
      svn:keywords : Author Date Rev
      owner : sally

### svn propset

Set PROPNAME to PROPVAL on Dateien, Verzeichnissen, or Revisions.

#### Übersicht

    svn propset PROPNAME [PROPWERT | -F WERTDATEI] PFAD...

    svn propset PROPNAME --revprop -r REV [PROPWERT | -F WERTDATEI] [URL]

#### Beschreibung

Setzt PROPNAME auf PROPWERT für Dateien, Verzeichnisse oder Revisionen. Die erste Form erzeugt eine Änderung einer Eigenschaft unter Versionskontrolle in der Arbeitskopie, während die zweite Form eine Änderung einer Eigenschaft ohne Versionskontrolle in einer Revision des Projektarchives erzeugt.

Subversion hat eine Anzahl von Special Eigenschaften, die das Verhalten von svn beeinflussen. Siehe für mehr Informationen zu diesen Eigenschaften.

#### Alternative Namen

pset, ps

#### Ändert

Arbeitskopie, Projektarchiv nur wenn mit einer URL gearbeitet wird

#### Archivzugriff

Nur wenn mit einer URL gearbeitet wird

#### Optionen

    --file (-F) DATEI
    --quiet (-q)
    --Revision (-r) REV
    --targets DATEINAME
    --recursive (-R)
    --revprop
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --encoding ENC
    --force
    --config-dir DIR

#### Beispiele

Setzt den Mime-Typ einer Datei:

    $ svn propset svn:mime-type image/jpeg foo.jpg
    Eigenschaft 'svn:mime-type' gesetzt für 'foo.jpg'

Auf UNIX Systemen, wenn sie für eine Datei das ausführbar Recht setzen wollen:

    $ svn propset svn:executable ON irgendeinscript
    property 'svn:executable' set on 'irgendeinscript'

Möglicherweise haben sie eine interne Vorschrift, die verschiedene Eigenschaften verwendet, um das Leben von MitarbeiterInnen an einem Projekt zu erleichtern:

    $ svn propset owner sally foo.c
    property 'owner' set on 'foo.c'

Wenn sie einen Fehler in einer Log-Nachricht einer bestimmten Revision gemacht haben und sie wollen diese ändern, dann verwenden sie `--revprop` und setzen svn:log auf die neue Log-Nachricht:

    $ svn propset --revprop -r 25 svn:log "Bericht über die Reise nach New York."
    Eigenschaft 'svn:log' für Revision '25' im Projektarchiv gesetzt

Wenn sie keine Arbeitskopie haben können sie eine URL angeben.

    $ svn propset --revprop -r 26 svn:log "Zusatz-Dokument." http://svn.red-bean.com/repos
    Eigenschaft 'svn:log' für Revision '25' im Projektarchiv gesetzt

Sie können propset anweisen seine Eingaben aus einer Datei zu holen. Sie können das einsetzen um den Inhalt einer Eigenschaft mit binären Werte zu versorgen:

    $ svn propset owner-pic -F sally.jpg moo.c
    Eigenschaft 'owner-pic' gesetzt für 'moo.c'

Standardmässig können sie Eigenschaften einer Revision in einem Subversion Projektarchiv nicht ändern. Ihr Projektarchiv Administrator muss die Änderung von Eigenschaften einer Revision ausdrücklich erlauben, indem er einen Haken (hook) mit dem Namen `pre-revprop-change` erzeugt. Siehe für mehr Information zu Haken-Skripte (hook scripts).

### svn resolved

Entfernt den conflicted Status von Dateien oder Verzeichnissen in der Arbeitskopie.

#### Übersicht

    svn resolved PFAD...

#### Beschreibung

Entfernt den conflicted Status von Dateien oder Verzeichnissen in der Arbeitskopie. Dieses Subkommando löst weder semantisch Konflikte auf, noch entfernt es Konfliktmarken. Es löscht lediglich zum Konflikt gehörende Dateien und ermöglicht es so, dass das Verzeichnis wieder übertragen werden kann. Es teilt Subversion also mit, dass der Konflikt resolved (aufgelöst) wurde. Siehe für einen tieferen Einblick in das Auflösen von Konflikten.

#### Alternative Namen

Keine

#### Ändert

Arbeitskopie

#### Archivzugriff

Nein

#### Optionen

    --targets DATEINAME
    --recursive (-R)
    --quiet (-q)
    --config-dir DIR

#### Beispiele

Wenn sie bei einer Aktualisierung einen Konflikt bekommen haben, werden in ihrer Arbeitskopie drei neue Dateien erzeugt:

    $ svn update
    C  foo.c
    Aktualisiert auf Revision 31.
    $ ls
    foo.c
    foo.c.mine
    foo.c.r30
    foo.c.r31

Dann wenn sie den Konflikt aufgelöst haben und `foo.c` wieder bereit zur Übertragung ist, dann rufen sie `svn resolved` auf, damit ihre Arbeitskopie weiss, dass sie alles notwendige veranlasst haben.

Sie können auch nur die konfliktbezogenen Dateien löschen und eine Übertragung durchführen, aber `svn resolved` bringt zusätzlich einige Evidenzdaten im administrativen Bereich der Arbeitskopie in Ordnung, sodass wir empfehlen dass sie dieses Kommando verwenden.

### svn revert

Macht alle lokalen Änderungen rückgängig.

#### Übersicht

    svn revert PFAD...

#### Beschreibung

Macht alle lokalen Änderungen an einer Datei oder einem Verzeichnis rückgängig und löscht alle Konfliktmarken. `svn revert` macht nicht nur Änderungen am Inhalt eines Objektes in ihrer Arbeitskopie rückgängig, sondern auch Änderungen an Eigenschaften. Schlussendlich können sie es verwenden um vorgemerkte Operationen rückgängig zu machen, die sie vielleicht vorbereitet haben (z.B. Dateien, die zum hinzufügen oder löschen vorgemerkt wurden, können wieder aus der Vormerkung entfernt werden).

#### Alternative Namen

Keine

#### Ändert

Arbeitskopie

#### Archivzugriff

Nein

#### Optionen

    --targets DATEINAME
    --recursive (-R)
    --quiet (-q)
    --config-dir DIR

#### Beispiele

Änderungen einer Datei rückgängig machen:

    $ svn revert foo.c
    Zurückgenommen foo.c

Wenn sie die Änderungen an allen Dateien eines Verzeichnisses rückgängig machen wollen, dann verwenden sie die `--recursive` Option:

    $ svn revert --recursive .
    Zurückgenommen neudir/afile
    Zurückgenommen foo.c
    Zurückgenommen bar.txt

Schliesslich können sie alle vorgemerkten Operationen rückgängig machen:

    $ svn add irrtuemlich.txt hoppala
    A         irrtuemlich.txt
    A         hoppala
    A         hoppala/hopsi.c

    $ svn revert irrtuemlich.txt hoppala
    Zurückgenommen irrtuemlich.txt
    Zurückgenommen hoppala

    $ svn status
    ?      irrtuemlich.txt
    ?      hoppala

Wenn sie keine Ziele für `svn revert` angeben, dann geschieht nichts — um sie davor zu bewahren irrtümlich Änderungen an ihrer Arbeitskopie zu verlieren, erfordert `svn revert` die explizite Angabe der Ziele.

### svn status

Zeigt den Status von Dateien und Verzeichnissen in ihrer Arbeitskopie.

#### Übersicht

    svn status [PFAD...]

#### Beschreibung

Zeigt den Status von Dateien und Verzeichnissen in ihrer Arbeitskopie. Ohne Argumente werden nur lokal geänderte Objekte angezeigt (kein Zugriff auf das Projektarchiv). Mit `--show-updates` werden Arbeitsrevision und 'veraltet' Informationen (out-of-date) hinzugefügt. Mit `--verbose`, wird die volle Revisionsinformation für jedes Objekt angezeigt.

Die ersten fünf Spalten in der Ausgabe sind jeweils einen Buchstaben breit und jede Spalte gibt Auskunft über verschiedene Aspekte der Objekte in der Arbeitskopie.

Die erste Spalte sagt aus, ob das Objekt hinzugefügt, gelöscht, oder in sonstiger Weise verändert wurde.

' '

  Keine Änderungen.

'A'

  Objekt ist vorgemerkt zum Hinzufügen (Added).

'D'

  Objekt ist vorgemerkt zum Löschen (Deleted).

'M'

  Objekt wurde geändert (Modified).

'C'

  Objekt steht in Konflikt mit Änderungen, die vom Projektarchiv empfangen wurden (Conflicted).

'I'

  Objekt wird ignoriert (z.B. über die svn:ignore Eigenschaft)

'?'

  Objekt steht nicht unter Versionskontrolle.

'!'

  Objekt fehlt (z.B. weil es verschoben oder gelöscht wurde, ohne, dass dazu die entsprechenden `svn` Kommandos verwendet wurden). Es kann auch bedeuten, dass ein Verzeichnis unvollständig ist (z.B. weil ein checkout oder update unterbrochen wurden).

'~'

  Das Objekt steht als Verzeichnis unter Versionskontrolle und und wurde durch eine Datei ersetzt oder umgekehrt.

Die zweite Spalte zeigt den Status der Eigenschaften von Dateien oder Verzeichnissen an.

' '

  Keine Änderungen.

'M'

  Eigenschaften für dieses Objekt wurden geändert (Modified).

'C'

  Eigenschaften für dieses Objekt stehen im Konflikt mit Eigenschaften die vom Projektarchiv empfangen wurden (Conflicted).

Die dritte Spalte zeigt an, ob das Objekt in der Arbeitskopie gesperrt ist.

' '

  Objekt ist nicht gesperrt.

'L'

  Objekt ist gesperrt (Locked).

Die vierte Spalte zeigt an, ob ein Objekt für das 'Hinzufügen mit Historie' vorgemerkt ist.

' '

  Keine Historie für die Übertragung vorgemerkt.

'+'

  Historie für die Übertragung vorgemerkt.

Die fünfte Spalte zeigt an, ob das Objekt relativ zu seinen Eltern umgestellt wurde (siehe ).

' '

  Das Objekt ist ein Kind seines Elternverzeichnisses.

'S'

  Das Objekt wurde umgestellt (Switched).

Die 'veraltet' Information erscheint in der in der achten Spalte (aber nur, wenn die `--show-updates` Option angegeben wurde).

' '

  Das Objekt in der Arbeitskopie ist aktuell.

'*'

  Am Server existiert eine neuere Revision des Objektes.

Die restlichen Felder haben eine variable Breite und sind durch Leerzeichen getrennt. Wenn die `--show-updates` oder `--verbose` Option angegeben wurde, dann steht im nächsten Feld die Arbeitsrevision.

Wenn die `--verbose` Option angegeben wurde, dann werden Revision und AutorIn der lezten Übertragung angezeigt.

Der Objektname ist immer das letzte Feld und kann daher Leerzeichen enthalten.

#### Alternative Namen

stat, st

#### Ändert

Nichts

#### Archivzugriff

Nur wenn die `--show-updates` Option verwendet wird.

#### Optionen

    --show-updates (-u)
    --verbose (-v)
    --non-recursive (-N)
    --quiet (-q)
    --no-ignore
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir

#### Beispiele

Das ist der einfachste Weg um herauszufinden, welche Änderungen sie an ihrer Arbeitskopie gemacht haben:

    $ svn status ak
     M     ak/bar.c
    A  +   ak/qax.c

Wenn sie herausfinden wollen, welche Dateien in ihrer Arbeitskopie veraltet sind, verwenden sie die `--show-updates` Option (es werden keine Änderungen an ihrer Arbeitskopie gemacht). Hier wurde die Datei `ak/foo.c` im Projektarchiv geändert, nachdem wir unsere Arbeitskopie aktualisiert haben:

    $ svn status --show-updates ak
     M           965    ak/bar.c
           *     965    ak/foo.c
    A  +         965    ak/qax.c
    Status im Vergleich zu Revision:    981

`--show-updates` zeigt nur einen Stern neben dem Objekt das veraltet ist (das heisst, dass das Objekt Änderungen vom Projektarchiv empfängt, wenn `svn update` durchgeführt wird). `--show-updates` zeigt nicht die Revisionsnummer des Objektes im Projektarchiv an.

And finally, the most information you can get out of the status subcommand:

    $ svn status --show-updates --verbose ak
     M           965       938 sally        ak/bar.c
           *     965       922 harry        ak/foo.c
    A  +         965       687 harry        ak/qax.c
                 965       687 harry        ak/zig.c
    Head Revision:   981

Für weiter Beispiele zu `svn status`, siehe .

### svn switch

Stelle die Arbeitskopie auf eine andere URL um.

#### Übersicht

    svn switch URL [PFAD]

#### Beschreibung

Dieses Subkommando stellt ihre Arbeitskopie so um, dass sie eine neue URL spielgelt — üblicherweise hat diese URL gemeinsame Vorfahren mit ihrer Arbeitskopie, obwohl das nicht erforderlich ist. Dies ist der typische Weg von Subversion um eine Arbeitskopie in einen neuen Nebenzweig (branch) zu verschieben. Siehe für einen tieferen Einblick zum Thema Umstellung/Wechsel (switching).

#### Alternative Namen

sw

#### Ändert

Arbeitskopie

#### Archivzugriff

Ja

#### Optionen

    --Revision (-r) REV
    --non-recursive (-N)
    --quiet (-q)
    --diff3-cmd CMD
    --relocate
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Wenn sie im Verzeichnis `vendors` stehen, für welches ein Zweig `vendors-mit-korr` erstellt wurde, können sie ihre Arbeitskopie auf diesen Zweig umstellen:

    $ svn switch http://svn.red-bean.com/repos/branches/vendors-mit-korr .
    U  meinproj/foo.txt
    U  meinproj/bar.txt
    U  meinproj/baz.c
    U  meinproj/qux.c
    Aktualisiert auf Revision 31.

Und um zurückzuwechseln geben brauchen sie nur die URL angeben von der sie ihre Arbeitskopie ursprünglich augecheckt haben:

    $ svn switch http://svn.red-bean.com/repos/trunk/vendors .
    U  meinproj/foo.txt
    U  meinproj/bar.txt
    U  meinproj/baz.c
    U  meinproj/qux.c
    Aktualisiert auf Revision 31.

Sie können auch einzelne Teile ihrer Arbeitskopie auf einen Zweig (branch) umstellen, wenn sie nicht die ganze Arbeitskopie umstellen wollen.

Wenn die URL von ihrem Projektarchiv wechselt und sie haben eine bestehende Arbeitskopie, die sie weiterbenutzen möchten, dann können sie die `svn switch --relocate` Option verwenden, um ihre Arbeitskopie von einer URL auf eine andere umzustellen:

    $ svn checkout file:///tmp/repos test
    A  test/a
    A  test/b
    …

    $ mv repos newlocation
    $ cd test/

    $ svn update
    svn: Unable to open an ra_local session to URL
    svn: Unable to open Projektarchiv 'file:///tmp/repos'

    $ svn switch --relocate file:///tmp/repos file:///tmp/newlocation .
    $ svn update
    Bei Revision 3.

### svn update

Aktualisiert ihre Arbeitskopie.

#### Übersicht

    svn update [PFAD...]

#### Beschreibung

`svn update` überträgt die Änderungn vom Projektarchiv in ihre Arbeitskopie. Wenn keine Revision angegeben wurde, dann wird ihre Arbeitskopie mit der `HEAD` Revision aktualisiert. Andernfalls wird die Arbeitskopie auf den Stand der Revision gebracht, die an die `--revision` Option übergegeben wird.

Für jedes aktualisierte Objekt wird wird eine Zeile ausgegeben, die mit einem Buchstabn für die durchgeführte Aktion beginnt. Diese haben die folgende Bedeutung:

A

  Hinzugefügt (Added)

D

  Gelöscht (Deleted)

U

  Aktualisiert (Updated)

C

  Konflikt (Conflict)

G

  Zusammengeführt (Merged)

Ein Buchstabe in der ersten Spalte bedeutet eine Aktualisierung der Datei, während Aktualisierungen der Dateieigenschaften in der zweiten Spalte angezeigt werden.

#### Alternative Namen

up

#### Ändert

Arbeitskopie

#### Archivzugriff

Ja

#### Optionen

    --Revision (-r) REV
    --non-recursive (-N)
    --quiet (-q)
    --diff3-cmd CMD
    --username USER
    --password PASS
    --no-auth-cache
    --non-interactive
    --config-dir DIR

#### Beispiele

Übernehme Änderungen vom Projektarchiv, die seit der letzten Aktualisierung dort vorgenommen wurden:

    $ svn update
    A  neudir/toggle.c
    A  neudir/disclose.c
    A  neudir/launch.c
    D  neudir/README
    Aktualisiert auf Revision 32.

Sie können ihre Arbeitskopie auch mit einer älteren Revision aktualisieren (Subversion hat kein Konzept von sticky (klebrigen) Dateien, so wie CVS dies kennt; siehe ):

    $ svn update -r30
    A  neudir/README
    D  neudir/toggle.c
    D  neudir/disclose.c
    D  neudir/launch.c
    U  foo.c
    Aktualisiert auf Revision 30.

Wenn sie eine ältere Revision einer einzelnen Datei anschauen wollen, sollten sie `svn cat` benutzen.

# `svnadmin`

`svnadmin` ist das Adminstrations-Werkzeug zum Überprüfen und Reparieren des Projektarchives. Für detailiertere Information, siehe .

Da `svnadmin` direkt auf das Projektarchiv zugreift (und nur auf der Maschine verwendet werden kann, auf der sich das Projektarchiv befindet), wird das Projektarchiv als Pfad und nicht als URL angegeben.

## `svnadmin` Optionen

`--bdb-log-keep`

  (Spezifisch für die Berkeley Datenbank) Schaltet das automatische Löschen der Datenbank Logdateien ab.

`--bdb-txn-nosync`

  (Spezifisch für die Berkeley Datenbank) Schaltet fsync ab, wenn Datenbank Transaktionen übertragen werden.

`--bypass-hooks`

  Umgehe das Hakensystem des Projektarchivs.

`--clean-logs`

  Entferne unbenutzte Berkeley DB Logdateien.

`--force-uuid`

  Standardmässig wird `svnadmin` beim Laden von Daten in ein Projektarchiv, das bereits Revisionen enthält die `UUID` Angaben im importierten 'Dump' ignorieren. Diese Option bewirkt, dass die `UUID` des 'Dump' in das Projektarchiv übernommen wird.

`--ignore-uuid`

  Standardmässig wird `svnadmin` beim Laden in ein leeres Projektarchiv die `UUID` vom importierten 'Dump' übernehmen. Diese Option bewirkt, dass diese UUID ignoriert wird.

`--incremental`

  Dump a Revision only as a diff against the previous Revision, instead of the usual fulltext.

`--parent-dir DIR`

  Wenn eine 'Dump' Datei geladen wird, dann wird als Basisverzeichnis DIR genommen anstatt /.

`--Revision` (`-r`) ARG

  Gibt die zu verwendende Revision an.

`--quiet`

  Zeige keine normalen Prozessausgaben, sondern nur Fehler.

## `svnadmin` Subcommands

### svnadmin create

Erzeugt ein neues, leeres Projektarchiv im ARCHIV_PFAD.

#### Übersicht

    svnadmin create ARCHIV_PFAD

#### Beschreibung

Erzeugt ein neues, leeres Projektarchiv im angegeben Pfad. Wenn das angegebene Verzeichnis nicht existiert, wird es angelegt. Zur Erinnerung: `svnadmin` arbeitet nur mit lokalen Pfadangaben und nicht mit URLs.

#### Optionen

    --bdb-txn-nosync
    --bdb-log-keep

#### Beispiele

Das Erstellen eines neuen Projektarchiv ist sehr einfach:

    $ svnadmin create /usr/local/svn/repos

### svnadmin dump

Gibt den Inhalt des Dateienystems im 'Dump'-Format aus.

#### Übersicht

    svnadmin dump ARCHIV_PFAD [-r VON[:BIS]] [--incremental]

#### Beschreibung

Gibt den Inhalt des Dateisystems in einem portablen 'Dump'-Format auf die Standardausgabe (stdout) aus. Rückmeldungen gehen an die Standardfehlerausgabe (stderr). Gibt die Revisionen VON: BIS aus. Wenn keine Revisionen angegeben werden, dann werden alle Revisionen ausgegeben. Wenn nur VON angegeben wird, dann wird nur diese eine Revision ausgegeben. Siehe für praktische Beispiele.

#### Optionen

    --Revision (-r)
    --incremental
    --quiet

#### Beispiele

Gibt das ganze Projektarchiv aus:

    $ svnadmin dump /usr/local/svn/repos
    SVN-fs-dump-format-version: 1
    Revision-number: 0
    * Dumped Revision 0.
    Prop-content-length: 56
    Content-length: 56
    …

Inkrementelle Ausgabe einer einzelnen Transaktion aus dem Projektarchiv:

    $ svnadmin dump /usr/local/svn/repos -r 21 --incremental
    * Dumped Revision 21.
    SVN-fs-dump-format-version: 1
    Revision-number: 21
    Prop-content-length: 101
    Content-length: 101
    …

### svnadmin help

#### Übersicht

    svnadmin help [SUBKOMMANDO...]

#### Beschreibung

Dieses Subkommando ist hilfreich, wenn sie in sich auf einer einsamen Insel und weder eine Internetverbindung noch dieses Buch zur Verfügung haben.

#### Alternative Namen

?, h

### svnadmin hotcopy

Erstellt eine Kopie des Projektarchivs im laufenden Betrieb.

#### Übersicht

    svnadmin hotcopy ALTER_ARCHIV_PFAD NEUER_ARCHIV_PFAD

#### Beschreibung

Das Subkommando erstellt eine volle Sicherung des Projektarchives im laufenden Betrieb, inklusive aller Haken, Konfigurations-Dateien und natürlich der Datenbank-Dateien. Wenn sie die `--clean-logs` Option angeben, wird `svnadmin` die Kopie des Projektarchivs erstellen und dann die unbenutzen Berkeley DB Logdateien vom ursprünglichen Projektarchiv entfernen.

#### Optionen

    --clean-logs

### svnadmin list-dblogs

Listet die Berkeley DB Logdateien, die für das angegebene Projektarchiv existieren.

#### Übersicht

    svnadmin list-dblogs ARCHIV_PFAD

#### Beschreibung

Die Berkeley Datenbank erzeugt Logdateien über alle Änderungen am Projektarchiv, um damit eine Wiederherstellung nach einer Katastrophe zu ermöglichen. Solange sie nicht `DB_LOGS_AUTOREMOVE` einschalten, werden die Logdateien immer mehr werden, obwohl die meisten davon nicht mehr benötigt werden und gelöscht werden können, um Plattenplatz freizugeben. Siehe für weitere Informationen.

### svnadmin list-unused-dblogs

Listet die Berkeley DB Logdateien, die gefahrlos gelöscht werden können.

#### Übersicht

    svnadmin list-unused-dblogs ARCHIV_PFAD

#### Beschreibung

Die Berkeley Datenbank erzeugt Logdateien über alle Änderungen am Projektarchiv, um damit eine Wiederherstellung nach einer Katastrophe zu ermöglichen. Solange sie nicht `DB_LOGS_AUTOREMOVE` einschalten, werden die Logdateien immer mehr werden, obwohl die meisten davon nicht mehr benötigt werden und gelöscht werden können, um Plattenplatz freizugeben. Siehe für weitere Informationen.

#### Beispiele

Entferne alle unbenutzten Logdateien vom Projektarchiv:

    $ svnadmin list-unused-dblogs /path/to/repos
    /path/to/repos/log.0000000031
    /path/to/repos/log.0000000032
    /path/to/repos/log.0000000033

    $ svnadmin list-unused-dblogs /path/to/repos | xargs rm
    ## disk space reclaimed!

### svnadmin load

Liest einen Stream im 'Dump'-Format von der Standardeingabe ein.

#### Übersicht

    svnadmin load ARCHIV_PFAD

#### Beschreibung

Liest einen Stream im 'Dump'-Format von der Standardeingabe (stdin) ein und überträgt neue Revisionen in das Dateienystem des Projektarchivs. Sendet Prozessinformationen an die Standardausgabe (stdout).

#### Optionen

    --quiet (-q)
    --ignore-uuid
    --force-uuid
    --parent-dir

#### Beispiele

Hier wird ein Projektarchiv von einer Sicherungsdatei (welche natürlich mit `svn dump` erstellt worden ist) geladen:

    $ svnadmin load /usr/local/svn/restored < repos-backup
    <<< Started new txn, based on original Revision 1
         * adding path : test ... done.
         * adding path : test/a ... done.
    …

Oder wenn sie in ein Unterverzeichnis laden wollen:

    $ svnadmin load --parent-dir neu/unterverz/fuer/project /usr/local/svn/restored < repos-backup
    <<< Started new txn, based on original Revision 1
         * adding path : test ... done.
         * adding path : test/a ... done.
    …

### svnadmin lstxns

Gibt die Namen aller hängengebliebenen Transaktionen aus.

#### Übersicht

    svnadmin lstxns ARCHIV_PFAD

#### Beschreibung

Gibt die Namen aller hängengebliebenen Transaktionen aus. Siehe für Informationen wie solche hängengebliebenen Transaktionen entstehen und was sie damit machen sollten.

#### Beispiele

Listet alle hängengebliebenen Transaktionen für ein Projektarchiv.

    $ svnadmin lstxns /usr/local/svn/repos/
    1w
    1x

### svnadmin recover

Stellt verlorengegangene Statusinformationen im Projektarchiv wieder her.

#### Übersicht

    svnadmin recover ARCHIV_PFAD

#### Beschreibung

Verwenden sie dieses Kommando, wenn sie eine Fehlermeldung bekommen, die darauf hinweist, dass ihr Projektarchiv eine Wiederherstellung benötigt.

#### Beispiele

Wiederherstellung eines hängengebliebenen Projektarchivs:

    $ svnadmin recover /usr/local/svn/repos/
    Setze exklusive Sperre für Projektarchiv db.
    Wiederherstellung läuft, bitte warten...
    Wiederherstellung komplett.
    Die aktuellste Revision im Projektarchiv ist 34.

### svnadmin rmtxns

Löscht Transaktionen vom Projektarchiv.

#### Übersicht

    svnadmin rmtxns ARCHIV_PFAD TXN_NAME...

#### Beschreibung

Löscht hängengebliebene Transaktionen vom Projektarchiv. Dies wird im Detail besprochen in .

#### Optionen

    --quiet (-q)

#### Beispiele

Löscht benannte Transaktionen:

    $ svnadmin rmtxns /usr/local/svn/repos/ 1w 1x

Glücklicherweise lässt sich die Ausgabe von `svn lstxns` hervorragend für die EIngabe von rmtxns verwenden:

    $ svnadmin rmtxns /usr/local/svn/repos/  `svnadmin lstxns /usr/local/svn/repos/`

Womit alle hängengebliebenen Transaktionen vom Projektarchiv entfernt werden.

### svnadmin setlog

Set the log-message on a Revision.

#### Übersicht

    svnadmin setlog ARCHIV_PFAD -r REVISION DATEI

#### Beschreibung

Setzt die Log-Nachricht für Revision REVISION auf den Inhalt der Datei DATEI.

Das ist ähnlich wie die Verwendung von `svn propset --revprop` um die `svn:log` Eigenschaft für eine Revision zu setzen, mit dem Unterschied, dass sie auch die Option `--bypass-hooks` verwenden können, um zu verhindern, dass irgendwelche pre- oder post-commit Haken ausgeführt werden, was nützlich ist, wenn die Änderung von Eigenschaften der Revision nicht mittels pre-revprop-change Haken ermöglicht wurde.

Eigenschaften einer Revision stehen nicht unter Versionskontrolle, sodass die vorherige Log-Nachricht verlorengeht.

#### Optionen

    --Revision (-r) ARG
    --bypass-hooks

#### Beispiele

Setzt Die Log-Nachricht für die Revision 19 auf den Inhalt der Datei `msg`:

    $ svnadmin setlog /usr/local/svn/repos/ -r 19 msg

### svnadmin verify

Überprüft die Daten im Projektarchiv.

#### Übersicht

    svnadmin verify ARCHIV_PFAD

#### Beschreibung

Lassen sie dieses Kommando laufen, wenn sie die Integrität des Projektarchivs überprüfen wollen. Intern geschieht dies, indem alle Revisionen im Projektarchiv wie bei der Ausgbe des 'Dump'-Formats behandelt werden, die Ausgabe jedoch unterdrückt wird.

#### Beispiele

Überprüft ein hängengebliebenes Projektarchiv:

    $ svnadmin verify /usr/local/svn/repos/
    * Revision 1729 überprüft.

# `svnlook`

`svnlook` ist ein Kommandozeilen-Werkzeug um verschiedene Aspekte eines Subversion Projektarchives zu untersuchen. Es macht keine Änderunge am Projektarchiv — es dient nur zum Nachschauen. `svnlook` wird typischerweise bei Haken im Projektarchiv verwendet, kann aber auch für Diagnosezwecke bei der Administration des Projektarchives nützlich sein.

Da `svnlook` direkt auf das Projektarchiv zugreift (und nur auf der Maschine verwendet werden kann, auf der sich das Projektarchiv befindet), wird das Projektarchiv als Pfad und nicht als URL angegeben.

Wenn keine Revision oder Transaktion angegeben wird, dann verwendet `svnlook` die aktuellste Revision im Projektarchiv.

## `svnlook`Optionen

Optionen für `svnlook` sind global, so wie bei `svn` und `svnadmin`, obwohl die meisten Optionen nur bei einem einzigen Subkommando angewendet werden können, da `svnlook` (absichtlich) in seinem Rahmen eingeschränkt ist.

`--no-diff-deleted`

  Verhindert, dass `svnlook` Unterschiede für gelöschte Dateien ausgibt. Standardmässig werden für eine Datei, die in einer Transaktion/Revision gelöscht wurde, die gleichen Unterschiede ausgegeben, als wie wenn die Datei weiter bestehen würde, jedoch der ganze Inhalt gelöscht worden wäre.

`--Revision` (`-r`)

  Gibt eine bestimmte Revision an, die untersucht werden soll.

`--Transaktion` (`-t`)

  Gibt eine bestimmte Transaktions-ID an, die untersucht werden soll.

`--show-ids`

  Zeigt die Dateienystemknoten Revisions-IDs für jeden Pfad im Dateienystembaum.

## `svnlook`

### svnlook author

Gibt den/die AutorIn aus.

#### Übersicht

    svnlook author ARCHIV_PFAD

#### Beschreibung

Gibt die Autorenschaft einer Revision oder Transaktion im Projektarchiv aus.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

`svnlook author` ist nützlich, aber nicht sehr spannend:

    $ svnlook author -r 40 /usr/local/svn/repos
    sally

### svnlook cat

Gibt den Inhalt einer Datei aus.

#### Übersicht

    svnlook cat ARCHIV_PFAD PFAD_IM_ARCHIV

#### Beschreibung

Gibt den Inhalt einer Datei aus.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt den Inhalt der Datei `/trunk/README` in der Transaktion `ax8`:

    $ svnlook cat -t ax8 /usr/local/svn/repos /trunk/README

                   Subversion, a version control system.
                   =====================================

    $LastChangedDate: 2003-07-17 10:45:25 -0500 (Thu, 17 Jul 2003) $

    Contents:

         I. A FEW POINTERS
        II. DOCUMENTATION
       III. PARTICIPATING IN THE SUBVERSION COMMUNITY
    …

### svnlook changed

Zeigt die Pfade an die geändert wurden.

#### Übersicht

    svnlook changed ARCHIV_PFAD

#### Beschreibung

Zeigt die Pfande an, die in einer bestimmten Revision oder Transaktion geändert wurden, sowie einen Buchstaben im Stil der svn update Statuskennungen in der ersten Spalte: `A` für hinzugefügt (added), `D` für gelöscht (deleted) und `U` für geändert (updated).

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt eine Liste mit allen Dateien, die in Revision 39 im Projektarchiv geändert wurden:

    $ svnlook changed -r 39 /usr/local/svn/repos
    A   trunk/vendors/deli/
    A   trunk/vendors/deli/chips.txt
    A   trunk/vendors/deli/sandwich.txt
    A   trunk/vendors/deli/pickle.txt

### svnlook date

Gibt den Zeitstempel aus.

#### Übersicht

    svnlook date ARCHIV_PFAD

#### Beschreibung

Gibt den Zeitstempel einer Revision oder Transaktion im Projektarchiv aus.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt Datum und Uhrzeit der Revision 40 aus dem Projektarchiv:

    $ svnlook date -r 40 /tmp/repos/
    2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)

### svnlook diff

Zeigt Unterschiede von geänderten Dateien und Eigenschaften.

#### Übersicht

    svnlook diff ARCHIV_PFAD

#### Beschreibung

Zeigt Unterschiede von geänderten Dateien und Eigenschaften aus dem Projektarchiv im GNU-Stil.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)
    --no-diff-deleted

#### Beispiele

Dies zeigt eine neu hinzugefügte (leere) Datei, eine gelöschte und eine kopierte Datei:

    $ svnlook diff -r 40 /usr/local/svn/repos/
    Copied: egg.txt (from rev 39, trunk/vendors/deli/pickle.txt)

    Hinzugefügt: trunk/vendors/deli/soda.txt
    ==============================================================================

    Geändert: trunk/vendors/deli/sandwich.txt
    ==============================================================================
    --- trunk/vendors/deli/sandwich.txt	(original)
    +++ trunk/vendors/deli/sandwich.txt	2003-02-22 17:45:04.000000000 -0600
    @@ -0,0 +1 @@
    +Don't forget the mayo!

    Gelöscht: trunk/vendors/deli/chips.txt
    ==============================================================================

    Gelöscht: trunk/vendors/deli/pickle.txt
    ==============================================================================

### svnlook dirs-changed

Zeigt geänderte Verzeichnissen an.

#### Übersicht

    svnlook dirs-changed ARCHIV_PFAD

#### Beschreibung

Zeigt Verzeichnissen an, die geändert wurden (bearbeitete Eigenschaften) oder deren Dateien geändert wurden.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt die Verzeichnisse, die in der Revision 40 in unserem einfachen Projektarchiv geändert wurden:

    $ svnlook dirs-changed -r 40 /usr/local/svn/repos
    trunk/vendors/deli/

### svnlook help

#### Übersicht

    Auch svnlook -h oder svnlook -?.

#### Beschreibung

Zeigt den Helptext für svnlook. Dieses Kommando ist, ebenso wie `svn help`, ihr bester Freund, auch wenn sie ihn nie anrufen oder zu ihrer Party einladen.

#### Alternative Namen

?, h

### svnlook history

Zeigt Informationen über die Historie von einem Pfad im Projektarchiv (oder vom Basisverzeichnis wenn kein Pfad angegeben wird).

#### Übersicht

    svnlook history ARCHIV_PFAD
                [PFAD_IN_REPOS]

#### Beschreibung

Zeigt Informationen über die Historie von einem Pfad im Projektarchiv (oder vom Basisverzeichnis wenn kein Pfad angegeben wird).

#### Optionen

    --Revision (-r)
    --show-ids

#### Beispiele

Dies zeigt die Historie für den Pfad `/tags/1.0` ab Revision 20 in unserem einfachen Projektarchiv.

    $ svnlook history -r 20 /usr/local/svn/repos /tags/1.0 --show-ids
    REVISION   PFAD <ID>
    --------   ---------
          19   /tags/1.0 <1.2.12>
          17   /branches/1.0-rc2 <1.1.10>
          16   /branches/1.0-rc2 <1.1.x>
          14   /trunk <1.0.q>
          13   /trunk <1.0.o>
          11   /trunk <1.0.k>
           9   /trunk <1.0.g>
           8   /trunk <1.0.e>
           7   /trunk <1.0.b>
           6   /trunk <1.0.9>
           5   /trunk <1.0.7>
           4   /trunk <1.0.6>
           2   /trunk <1.0.3>
           1   /trunk <1.0.2>

### svnlook info

Zeigt AutorIn, Datumstempel, Grösse der Log-Nachricht und Log-Nachricht.

#### Übersicht

    svnlook info ARCHIV_PFAD

#### Beschreibung

Zeigt AutorIn, Datumstempel, Grösse der Log-Nachricht und Log-Nachricht.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt die Information über die Revision 40 in unserem einfachen Projektarchiv.

    $ svnlook info -r 40 /usr/local/svn/repos
    sally
    2003-02-22 17:44:49 -0600 (Sat, 22 Feb 2003)
    15
    Menü umgekrempelt.

### svnlook log

Zeigt die Log-Nachricht.

#### Übersicht

    svnlook log ARCHIV_PFAD

#### Beschreibung

Zeigt die Log-Nachricht.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt die Log-Nachricht für die Revision 40 in unserem einfachen Projektarchiv:

    $ svnlook log /tmp/repos/
    Menü umgekrempelt.

### svnlook propget

Zeigt den Wert einer Eigenschaft für einen Pfad im Projektarchiv.

#### Übersicht

    svnlook propget ARCHIV_PFAD PROPNAME PFAD_IM_ARCHIV

#### Beschreibung

Zeigt den Wert einer Eigenschaft für einen Pfad im Projektarchiv.

#### Alternative Namen

pg, pget

#### Optionen

    --Revision (-r)
    --Transaktion (-t)

#### Beispiele

Dies zeigt den Wert der Eigenschaft 'Gewuerz' für die Datei `/trunk/sandwich` in der `HEAD` Revision:

    $ svnlook pg /usr/local/svn/repos Gewuerz /trunk/sandwich
    Senf

### svnlook proplist

Zeigt Namen und Werte von Eigenschaften für Dateien und Verzeichnisse im Projektarchiv.

#### Übersicht

    svnlook proplist ARCHIV_PFAD PFAD_IM_ARCHIV

#### Beschreibung

Zeigt die Namen der Eigenschaften eines Pfades im Projektarchiv. Mit `--verbose` wird auch der Wert der Eigenschaft angezeigt.

#### Alternative Namen

pl, plist

#### Optionen

    --Revision (-r)
    --Transaktion (-t)
    --verbose (-v)

#### Beispiele

Dies zeigt die Namen der Eigenschaften für die Datei `/trunk/README` in der `HEAD` Revision:

    $ svnlook proplist /usr/local/svn/repos /trunk/README
      original-author
      svn:mime-type

Dies ist das gleiche Kommando wie im vorigen Beispiel, aber diesmal werden die Werte der Eigenschaften auch angezeigt:

    $ svnlook proplist --verbose /usr/local/svn/repos /trunk/README
      original-author : fitz
      svn:mime-type : text/plain

### svnlook tree

Zeigt die Baumstruktur

#### Übersicht

    svnlook tree ARCHIV_PFAD [PFAD_IM_ARCHIV]

#### Beschreibung

Zeigt die Baumstruktur des Projektarchives beginnend mit PFAD_IM_ARCHIV (wenn angegeben, andernfalls an der Basis), sowie optional die Knoten-IDs der Revisionen.

#### Optionen

    --Revision (-r)
    --Transaktion (-t)
    --show-ids

#### Beispiele

Dies zeigt die Baumstruktur (mit Knoten-IDs) für die Revision 40 in unserem einfachen Projektarchiv:

    $ svnlook tree -r 40 /usr/local/svn/repos --show-ids
    / <0.0.2j>
     trunk/ <p.0.2j>
      vendors/ <q.0.2j>
       deli/ <1g.0.2j>
        egg.txt <1i.e.2j>
        soda.txt <1k.0.2j>
        sandwich.txt <1j.0.2j>

### svnlook uuid

Zeigt die `UUID` des Projektarchives.

#### Übersicht

    svnlook uuid ARCHIV_PFAD

#### Beschreibung

Zeigt die `UUID` des Projektarchives. Die UUID ist die Universal Unique IDentifier des Projektarchives. Der Subversion Client benutzt diese Identifier um verschiedene Projektarchiven voneinander zu unterscheiden.

#### Beispiele

    $ svnlook uuid /usr/local/svn/repos
    e7fe1b91-8cd5-0310-98dd-2f12e793c5e8

### svnlook youngest

Zeigt die neueste Revisionsnumber.

#### Übersicht

    svnlook youngest ARCHIV_PFAD

#### Beschreibung

Zeigt die neueste Revisionsnumber eines Projektarchives.

#### Beispiele

Dies zeigt die neueste Revisionsnummer für unser einfaches Projektarchiv:

    $ svnlook youngest /tmp/repos/
    42