SVN - Changer la copie de travail pour qu'elle pointe vers le nouveau chemin svn

87

J'ai un référentiel SVN qui a été déplacé vers une nouvelle adresse / chemin. Cependant, j'ai une copie de travail avec un code source non validé qui pointe toujours vers l'ancien chemin du référentiel (maintenant invalide). Comment modifier une copie de travail pour qu'elle pointe vers un nouveau référentiel?

quano
la source

Réponses:

78

svn switch --relocateest obsolète à partir de la version 1.7 de subversion. Utilisez svn relocateplutôt la commande.

Il prend soit FROM-PREFIX TO-PREFIX [PATH...]ou TO-URLcomme arguments.

Voir

svn help relocate

pour plus d'informations.

Michael Krebs
la source
58

Utilisez la svn switchcommande avec l' --relocateoption de ligne de commande.

Greg Hewgill
la source
1
Merci. Voici ce que j'ai utilisé: svn switch --relocate file: /// Users / user / old_repository / project / trunk file: /// Users / user / new_repository / project / trunk
quano
Ne corrige pas les URL dans svn: externals. Une idée comment faire ça?
Axel Bregnsbo
26

Utilisation de TortoiseSVN

  1. Faites un clic droit sur la copie de travail et sélectionnez 'SVN Switch ...'
  2. Sur le formulaire `` Passer à la branche '' Sélectionnez un nouveau chemin SVN

Utilisation de la commande

  1. Ouvrir la console
  2. Accédez à la copie de travail cd [working copy path]
  3. Écrivez la commande svn relocate [new url]
Ahmed Abdallah
la source
Ceci n'est applicable que si vous utilisez TortoiseSVN, que l'affiche n'a pas indiqué qu'il ou elle utilise.
zck
Salut @zck s'il vous plaît noter que j'ai écrit 2 solution en 1 réponse d'abord TortoiseSVN et la seconde est Command cette commande est obsolète pour subversion en général, vous pouvez consulter cette page svn relocate / svn Subcommands
Ahmed Abdallah
Eh bien, votre réponse a été modifiée après que j'ai commenté pour inclure une façon de le faire en ligne de commande. Cette réponse en ligne de commande a déjà été publiée en juin, il n'est donc pas nécessaire de la répéter.
zck
Non, je poste la réponse dans ses mots actuels ma modification juste pour améliorer le formatage; et je pense que la commande que j'ai écrite est plus claire que celle qui a été écrite en juin
Ahmed Abdallah
L'interface graphique de TortoiseSVN nécessite un clic sur «déplacer», et non de basculer. Ce qui est logique étant donné la ligne de commande ... Je ne sais pas ce que ferait le commutateur - il semblait essayer d'accéder à l'ancienne URL et à la nouvelle URL, ce que je ne voulais pas qu'il fasse.
Gerard ONeill
12

Être plus précis

svn switch --relocate [complete url of the old repo] [complete url of the new repo] 

Par exemple:

svn switch --relocate  http://svn.repo.com:9880/website/branches  http://svnrepo.com/web/branches 
BTR Naidu
la source
3

Utilisation de TortoiseSVN Tortoisesvn Docs

  1. Accédez au dossier racine de la copie de travail
  2. Cliquez avec le bouton droit, cliquez sur sous-menu TortoiseSVN, cliquez sur Déplacer.
  3. Entrez le nouveau chemin
Yitzhak Weinberg
la source
1

Très simple :

Étape 1: Ouvrez l'invite de commande / le terminal et définissez le chemin de travail

Étape 2: exécutez cette lignesvn switch --relocate http://newurl

Rajesh Loganathan
la source
0

J'avais changé mon serveur svn pour forcer tout rediriger de HTTP à HTTPS (et cela aurait pu être une redirection vers n'importe quelle autre URL), et j'ai remarqué que cette svn relocatecommande causait beaucoup de problèmes avec les externes. Heureusement, j'ai trouvé que la chose la plus simple était de simplement faire un svn updateet en raison de la redirection du serveur svn, il a mis à jour toutes les URL stockées dans la copie de travail locale, y compris les externes.

Gunther Schadow
la source