web-dev-qa-db-fra.com

erreur de commutateur svn - n'est pas le même référentiel

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

76
Gabriel Solomon

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
130
Steef

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").

23
Pascal Lindelauf

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

7
GabrieleV

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

4
crashmstr

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.

1
Peter Parker