Nom

svn copy — Copier un ou plusieurs fichiers ou répertoires dans une copie de travail ou dans le dépôt.

Synopsis

svn copy SRC[@REV]... DST

Description

Copie un ou plusieurs fichiers ou répertoires dans une copie de travail ou dans le dépôt. Lors de la copie de plusieurs sources, elles seront ajoutées en tant que fils de DST, qui doit être un répertoire. SRC et DST peuvent être dans la copie de travail(WC) ou une URL :

WC → WC

Copie et prévoit pour ajout un élément (avec reprise de l'historique).

WC → URL

Propage immédiatement une copie de WC vers URL.

URL → WC

Extrait l'URL dans WC et le prévoit pour ajout.

URL → URL

Copie complète côté serveur. Utilisé habituellement pour créer des branches ou des étiquettes.

S'il n'y pas de piquet de révision (c-à-d. @REV) spécifié, la révision BASE est utilisée par défaut pour les fichiers copiés depuis la copie de travail et la révision HEAD est utilisée par défaut pour les fichiers copiés depuis une URL.

[Note] Note

Vous ne pouvez copier que des fichiers provenant d'un même dépôt. Subversion ne supporte pas les copies inter-dépôts.

Noms alternatifs

cp

Modifie

Le dépôt si la destination est une URL ; la copie de travail si la destination est un chemin WC.

Accède au dépôt

Oui, si la source ou la destination sont dans le dépôt ou s'il y a besoin de déterminer le numéro de révision de la source.

Options

--editor-cmd EDITEUR
--encoding ENC
--file (-F) FICHIER
--force-log
--message (-m) TEXTE
--parents
--quiet (-q)
--revision (-r) REV
--with-revprop ARG

Exemples

Copie un élément dans la copie de travail (la copie est prévue pour ajout ; rien n'est écrit dans le dépôt avant que vous n'effectuyez une propagation) :

$ svn copy machin.txt bidule.txt
A         bidule.txt
$ svn status
A  +   bidule.txt

Copie plusieurs fichiers de la copie de travail dans un sous-répertoire :

$ svn cp bat.c truc.c qux.c src
A         src/bat.c
A         src/truc.c
A         src/qux.c

Copie la révision 8 de bat.c dans la copie de travail sous un autre nom :

$ svn cp -r 8 bat.c un-vieux-bat.c
A         un-vieux-bat.c

Copie un élément de la copie de travail vers une URL dans le dépôt (ceci provoque immédiatement une propagation, c'est pourquoi vous devez fournir une entrée dans le journal de propagation) :

$ svn copy proche.txt file:///var/svn/depot/test/tres-loin.txt -m "Copie distante."

Révision 8 propagée.

Copie un élément du dépôt vers la copie de travail (ceci ne fait que prévoir la copie — rien ne se passe sur le dépôt tant que vous ne faites pas de propagation) :

$ svn copy file:///var/svn/depot/test/tres-loin -r 6 pres-d-ici
A         pres-d-ici
[Astuce] Astuce

C'est la méthode recommandée pour ressuciter un fichier mort dans le dépôt !

Et enfin, copie entre deux URL :

$ svn copy file:///var/svn/depot/test/tres-loin \
           file:///var/svn/depot/test/la-bas -m "copie distante."

Révision 9 propagée.
$ svn copy file:///var/svn/depot/test/trunk \
           file:///var/svn/depot/test/tags/0.6.32-pre-officielle \
           -m "création d'une étiquette"

Révision 12 propagée.
[Astuce] Astuce

C'est la méthode la plus facile pour « étiqueter » une révision dans le dépôt — faites juste svn copy de cette révision (généralement, c'est HEAD) vers votre répertoire tags.

Et ne vous inquietez pas si vous avez oublié de créer votre étiquette — vous pouvez toujours indiquer une vieille révision et étiqueter quand bon vous semble :

$ svn copy -r 11 file:///var/svn/depot/test/trunk \
           file:///var/svn/depot/test/tags/0.6.32-pre-officielle \
           -m "Oublié de créer l'étiquette à la révision 11"

Révision 13 propagée.