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.

Nom

svn switch (sw) — Mettre à jour la copie de travail à partir d'une nouvelle URL.

Synopsis

svn switch URL[@REV_PIVOT] [CHEMIN]

switch --relocate FROM TO [CHEMIN...]

Description

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] 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 --ignore-ancestry.

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.

Options

Exemples

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] 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.