J'ai récemment déplacé le serveur SVN et maintenant je suis sur le point de déplacer les copies de travail de mon ordinateur vers le nouveau serveur. Mais j'obtiens l'erreur la plus étrange. je fais :
svn switch http://99.99.99.new/svn/company/project/trunk/web
mais je reçois
svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'
le déplacement a été effectué avec le vidage et l'importation ... et la racine du référentiel est activée http://99.99.99.new/svn/company/project
Avez-vous une idée de ce qui pourrait mal se passer? Merci beaucoup
Essayez d'utiliser
svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
Comme indiqué par Sporino dans les commentaires, depuis Subversion 1.7, il existe une commande séparée relocate
:
svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
De plus, dans TortoiseSVN, il y a l'option "Relocaliser", que vous devez utiliser dans des situations comme celles-ci (au lieu de l'option "Switch").
Ma meilleure façon de faire une relocalisation SVN est la suivante:
svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
new_url_or_repository
De cette façon, en utilisant l'ancienne bonne URL du svn info
commande, vous êtes sûr de ne pas entrer une mauvaise, qui est l'une des erreurs les plus courantes.
Si tout est correct, vous serez invité avec les détails d'authentification pour le nouvel emplacement, s'ils sont différents.
Après avoir émis la commande, assurez-vous de vérifier que la modification a été appliquée en regardant le paramètre URL, en émettant
svn info
Après la relocalisation, mettez à jour votre copie de travail, pour vérifier que tout va bien:
svn update
Mon 2c ..
Utilisez le paramètre de ligne de commande relocate
pour la commande switch
.
documentation du commutateur svn
Parfois, un administrateur peut changer "l'emplacement de base" de votre référentiel - en d'autres termes, le contenu du référentiel ne change pas, mais l'URL principale utilisée pour atteindre la racine du référentiel le fait. Par exemple, le nom d'hôte peut changer, ou le schéma d'URL, ou peut-être simplement le chemin qui mène au référentiel. Plutôt que d'extraire une nouvelle copie de travail, vous pouvez demander à la commande svn switch de "réécrire" le début de toutes les URL de votre copie de travail. Utilisez la commande --relocate pour effectuer la substitution. Aucun contenu de fichier n'est modifié et le référentiel n'est pas contacté. C'est similaire à l'exécution d'un script Perl sur votre copie de travail .svn/répertoires qui exécute s/OldRoot/NewRoot /.
Vous devez utiliser l'option --relocate:
svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web
voir svnbook pour plus de détails.