This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
svn switch (sw) — Mettre à jour la copie de travail à partir d'une nouvelle URL.
svn switch URL[@REV_PIVOT] [CHEMIN]
svn switch --relocate FROM TO [CHEMIN...]
La première forme de cette sous-commande (sans l'option
--relocate
) actualise votre copie de travail en la
faisant pointer sur une nouvelle URL. C'est la manière de faire avec
Subversion pour utiliser une nouvelle branche pour votre copie de
travail. Si REV_PIVOT
est spécifié, cela
indique dans quelle révision chercher pour déterminer la cible.
Reportez-vous à la section intitulée « Parcours des branches » pour une
description en profondeur de la gestion des branches.
Note | |
---|---|
À partir de Subversion 1.7, la commande svn
switch demande par défaut que l'URL vers laquelle vous
faites pointer votre copie de travail possède un ancêtre commun
avec la copie de travail actuelle. Vous pouvez passer outre ce
comportement en spécifiant l'option
|
Si l'option --force
est utilisée, les chemins
non gérés en versions de la copie de travail qui font obstacle à
l'ajout, par la commande de ré-aiguillage, de chemins ayant le même
nom ne font pas échouer automatiquement l'opération. Si le chemin
faisant obstacle est du même type (fichier ou répertoire) que le
chemin correspondant dans le dépôt, il passe sous gestion de versions
mais son contenu est laissé tel quel dans la copie de travail. Cela
veut dire que les enfants d'un répertoire non géré en versions
peuvent également faire obstacle et se retrouver gérés en versions.
Pour les fichiers, toute différence entre l'obstacle et le dépôt est
gérée comme une modification locale à la copie de travail. Toutes les
propriétés du dépôt sont appliquées au chemin qui fait
obstacle.
Comme pour la plupart des sous-commandes, vous pouvez limiter le
périmètre d'action de l'opération de ré-aiguillage à une profondeur
de l'arborescence en utilisant l'option --depth
. De
la même manière, vous pouvez utiliser l'option
--set-depth
pour définir un nouveau niveau de
récursion « permanent » associé à la cible de
ré-aiguillage.
L'option --relocate
est obsolète depuis
Subversion 1.7. Utilisez à la place la commande
svn relocate (décrite dans svn relocate) pour suivre un déplacement du
dépôt.
Vous pointez actuellement vers le répertoire
vendors
qui a fait l'objet d'un déplacement vers
le répertoire vendors-with-fix
. Vous voulez
maintenant que votre copie de travail pointe vers cette nouvelle
branche :
$ svn switch http://svn.red-bean.com/repos/branches/vendors-with-fix . U mon-projet/machin.txt U mon-projet/bidule.txt U mon-projet/truc.c U mon-projet/qux.c À la révision 31.
Pour revenir sur la branche initiale, vous n'avez qu'à fournir l'emplacement dans le dépôt à partir duquel vous avez extrait votre copie de travail :
$ svn switch http://svn.red-bean.com/repos/trunk/vendors . U mon-projet/machin.txt U mon-projet/bidule.txt U mon-projet/truc.c U mon-projet/qux.c À la révision 31.
Astuce | |
---|---|
Vous pouvez ne ré-aiguiller qu'une partie de votre copie de travail vers une branche si vous ne voulez pas basculer l'ensemble de votre copie de travail, mais ce n'est pas recommandé en général. Il est très aisé d'oublier que vous l'avez fait et ainsi de propager accidentellement des modifications à la fois à la branche ré-aiguillée et celle qui n'a pas bougé de votre arborescence. |