Diese Dokumentation wurde zur Beschreibung der Serie 1.6.x von Subversion erstellt. Falls Sie eine unterschiedliche Version von Subversion einsetzen, sei Ihnen dringend angeraten, bei http://www.svnbook.com/ vorbeizuschauen und stattdessen die zu Ihrer Version von Subversion passende Version dieser Dokumentation heranzzuiehen.

Name

svn copy (cp) — Kopieren einer Datei oder eines Verzeichnisses in einer Arbeitskopie oder im Projektarchiv.

Aufruf

svn copy SRC[@REV]... DST

Beschreibung

Kopieren einer Datei oder mehrerer Dateien in der Arbeitskopie. SRC und DST können beide entweder ein Pfad in der Arbeitskopie (AK) oder ein URL sein. Sollen mehrere Quellen kopiert werden, fügen Sie diese als unmittelbare Kindobjekte DST hinzu (welches natürlich ein Verzeichnis sein muss).

AK → AK

Element kopieren und zum Hinzufügen vormerken (mit Geschichte).

AK → URL

Eine Kopie aus der AK direkt an den URL übergeben.

URL → AK

URL in AK auschecken und zum Hinzufügen vormerken.

URL → URL

Kopie vollständig auf dem Server. Dies wird normalerweise zum Anlegen von Zweigen und zum Etikettieren mit Tags verwendet.

Wird keine Peg-Revision (z.B. @REV) angegeben, so wird standardmäßig die Revision BASE für Dateien verwendet, die aus der Arbeitskopie kopiert werden, wohingegen die Revision HEAD für Dateien herangezogen wird, die von einem URL kopiert werden.

[Anmerkung] Anmerkung

Sie können Dateien nur innerhalb eines einzelnen Projektarchivs kopieren. Subversion unterstützt nicht das Kopieren zwischen Projektarchiven.

Optionen

--editor-cmd CMD
--encoding ENC
--file (-F) FILENAME
--force-log
--ignore-externals
--message (-m) MESSAGE
--parents
--quiet (-q)
--revision (-r) REV
--with-revprop ARG

Beispiele

Kopie eines Objektes innerhalb Ihrer Arbeitskopie (dies merkt die Kopie vor – bis zur Übergabe wird nichts ins Projektarchiv übertragen):

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

Kopieren mehrerer Dateien der Arbeitskopie in ein Unterverzeichnis:

$ svn copy bat.c baz.c qux.c src
A         src/bat.c
A         src/baz.c
A         src/qux.c

Kopieren von bat.c, Revision 8 in Ihre Arbeitskopie unter einem anderen Namen:

$ svn copy -r 8 bat.c ya-old-bat.c
A         ya-old-bat.c

Kopie eines Objektes in Ihrer Arbeitskopie zu einem URL im Projektarchiv (dies ist eine sofortige Übergabe, so dass Sie eine Protokollnachricht angeben müssen):

$ svn copy near.txt file:///var/svn/repos/test/far-away.txt -m "Remote copy."


Revision 8 übertragen.

Kopie eines Objektes aus dem Projektarchiv in Ihre Arbeitskopie (dies merkt die Kopie nur vor – vor der Übergabe gelangt nichts ins Projektarchiv):

$ svn copy file:///var/svn/repos/test/far-away -r 6 near-here
A         near-here
[Tipp] Tipp

Dies ist die empfohlene Methode, eine gelöschte Datei im Projektarchiv wiederherzustellen!

Schließlich eine Kopie zwischen zwei URLs:

$ svn copy file:///var/svn/repos/test/far-away \
           file:///var/svn/repos/test/over-there -m "remote copy."


Revision 9 übertragen.
$ svn copy file:///var/svn/repos/test/trunk \
           file:///var/svn/repos/test/tags/0.6.32-prerelease -m "tag tree"


Revision 12 übertragen.
[Tipp] Tipp

Dies ist die einfachste Methode, um eine Revision in Ihrem Projektarchiv mit einem Tag zu etikettieren – kopieren Sie diese Revision (normalerweise HEAD lediglich mit svn copy ) in Ihr tags-Verzeichnis.

Machen Sie sich keine Sorgen, falls sie das Etikettieren einmal vergessen haben sollten – Sie können immer eine ältere Revision angeben und jederzeit ein Tag vergeben:

$ svn copy -r 11 file:///var/svn/repos/test/trunk \
           file:///var/svn/repos/test/tags/0.6.32-prerelease \
           -m "Forgot to tag at rev 11"


Revision 13 übertragen.