Diese Dokumentation wurde zur Beschreibung der Serie 1.7.x von Apache™ 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 checkout (co) — Auschecken einer Arbeitskopie aus einem Projektarchiv.
Checkt eine Arbeitskopie aus einem Projektarchiv aus.
            Wird PATH ausgelassen, wird der
            Basisname des URL als Ziel verwendet. Werden mehrere URLs
            angegeben, wird jeder in ein Unterverzeichnis von
            PATH ausgecheckt, wobei der
            Name des Unterverzeichnisses dem Basisnamen des URL
            entspricht.
Eine Arbeitskopie in ein Verzeichnis
            mine auschecken:
$ svn checkout file:///var/svn/repos/test mine A mine/a A mine/b A mine/c A mine/d Ausgecheckt. Revision 20. $ ls mine $
Zwei unterschiedliche Verzeichnisse in zwei getrennte Arbeitskopien auschecken:
$ svn checkout file:///var/svn/repos/test \
               file:///var/svn/repos/quiz
A    test/a
A    test/b
A    test/c
A    test/d 
Ausgecheckt. Revision 20.
A    quiz/l
A    quiz/m 
Ausgecheckt. Revision 13.
$ ls
quiz  test
$
        Zwei unterschiedliche Verzeichnisse in zwei getrennte
            Arbeitskopien auschecken, jedoch beide in ein Verzeichnis
            working-copies:
$ svn checkout file:///var/svn/repos/test \
               file:///var/svn/repos/quiz \
               working-copies
A    working-copies/test/a
A    working-copies/test/b
A    working-copies/test/c
A    working-copies/test/d 
Ausgecheckt. Revision 20.
A    working-copies/quiz/l
A    working-copies/quiz/m 
Ausgecheckt. Revision 13.
$ ls
working-copies
        Falls Sie das Auschecken unterbrechen (oder das Auschecken durch irgendetwas anderes unterbrochen wird, etwa durch Verlust der Netzverbindung o.ä.), können Sie es erneut durch Eingabe des gleichen Befehls oder durch die Aktualisierung der unvollständigen Arbeitskopie wiederholen:
$ svn checkout file:///var/svn/repos/test mine A mine/a A mine/b ^C svn: E200015: Abbruchsignal empfangen $ svn checkout file:///var/svn/repos/test mine A mine/c ^C svn: E200015: Abbruchsignal empfangen $ svn update mine Updating 'mine': A mine/d Aktualisiert zu Revision 20. $
Falls Sie eine andere als die letzte Revision
            auschecken möchten, können Sie dem Befehl svn
            checkout die Option --revision
            (-r) mitgeben:
$ svn checkout -r 2 file:///var/svn/repos/test mine A mine/a Ausgecheckt. Revision 2. $
Vor Version 1.7 würde sich Subversion standardmäßig
            beschweren, falls Sie versuchen, ein Verzeichnis auf einem
            bestehenden Verzeichnis auszuchecken, das Dateien oder
            Unterverzeichnisse beinhaltet, die der Checkout selbst
            angelegt hätte. Subversion behandelt diese Situation
            unterschiedlich, indem es das Auschecken weiterlaufen
            lässt, aber Objekte, die im Weg liegen, als Baumkonflikte
            markiert. Verwenden Sie die Option
            --force, um diese Schutzmaßnahme zu
            umgehen. Wenn Sie mit der Option --force
            auschecken, gerät jede unversionierte Dateien im
            Checkout-Zielverzeichnisbaum, die normalerweise den
            Checkout verhindert hätte, unter Versionskontrolle, jedoch
            ändert Subversion ihren Inhalt nicht. Wenn dieser Inhalt
            sich vom Inhalt der Datei an dieser Stelle im
            Projektarchiv unterscheidet (der als Teil des Checkouts
            heruntergeladen wurde), erscheint die Datei nach
            vollendetem Checkout als lokal geändert, wobei die
            Änderungen der Überführung der versionierten,
            ausgecheckten Datei in die unversionierte Datei vor dem
            Checkout entsprechen.
$ mkdir project $ mkdir project/lib $ touch project/lib/file.c $ svn checkout file:///var/svn/repos/project/trunk project svn: Verzeichnis »project/lib« konnte nicht hinzugefügt werden: ein nicht versi oniertes Verzeichnis mit demselben Namen existiert bereits $ svn checkout file:///var/svn/repos/project/trunk project --force E project/lib A project/lib/subdir E project/lib/file.c A project/lib/anotherfile.c A project/include/header.h Ausgecheckt, Revision 21. $ svn status wc M project/lib/file.c $ svn diff wc Index: project/lib/file.c =================================================================== --- project/lib/file.c (revision 1) +++ project/lib/file.c (working copy) @@ -3 +0,0 @@ -/* file.c: Code for acting file-ishly. */ -#include <stdio.h> -/* Not feeling particularly creative today. */ $
Wie auch bei anderen Arbeitskopien haben Sie die üblichen Möglichkeiten zur Auswahl: die lokalen „Änderungen“ teilweise oder vollständig rückgängig machen, sie übergeben oder mit Änderungen in Ihrer Arbeitskopie fortfahren.
Besonders nützlich ist diese Funktionalität, um vor
            Ort unversionierte Verzeichnisbäume zu importieren. Indem
            zunächst der Baum in das Projektarchiv importiert und dann
            über den unversionierten Baum mit der Option
            --force ausgecheckt wird, bewirken Sie
            hiermit eine Überführung des unversionierten Baums in eine
            Arbeitskopie.
$ svn mkdir -m "Create newproject project root." \
      file://var/svn/repos/newproject
$ svn import -m "Import initial newproject codebase." newproject \
      file://var/svn/repos/newproject/trunk 
Hinzufügen     newproject/include
Hinzufügen     newproject/include/newproject.h
Hinzufügen     newproject/lib
Hinzufügen     newproject/lib/helpers.c
Hinzufügen     newproject/lib/base.c
Hinzufügen     newproject/notes
Hinzufügen     newproject/notes/README
Revision 22 übertragen.
$ svn checkout file://`pwd`/repos-1.6/newproject/trunk newproject --force
E    newproject/include
E    newproject/include/newproject.h
E    newproject/lib
E    newproject/lib/helpers.c
E    newproject/lib/base.c
E    newproject/notes
E    newproject/notes/README 
Ausgecheckt. Revision 2.
$ svn status newproject
$