Migrer un dépôt SVN d'un serveur à un autre
Etant en pleine réinstallation de toute l'infrastructure réseau d'Imagiweb, il me faut migrer notamment tous les dépôts SVN de mon ancien serveur vers le nouveau serveur de développement/pré-production. Voyons donc ensemble comment déplacer nos différents dépôts.
Tout d'abord, sur l'ancien serveur, nous allons faire une sauvegarde de notre dépôt, grâce à la commande dump de svnadmin.
# svnadmin dump /var/svn/myProject/ > ~/myProject.svndump
Vous obtiendrez donc une archive contenant tous les fichiers (incluant les .svn de votre projet, le tout trié par commits successifs.
Nous allons à présent transférer ce fichier, présent sur notre ancien serveur, sur notre nouveau serveur. Pour cela, deux méthodes. Soit on place l'archive dans un répertoire accessible par Apache et on utilise un wget, soit on utilise le protocole de copie sécurisée accessible avec l'utilitaire scp.
Cette première solution étant des plus faibles niveau sécurité (je pense notamment aux personnes qui n'hésitent pas à placer leurs fichiers SQL directement sur leur site Web... Il ne vaut mieux pas oublier de l'enlever, sous peine de voir les emails de ses 12.000 membres publiés sur le Net), nous opterons pour la seconde. Sur l'ancien serveur donc :
# scp ~/.myProject.svndump 91.243.11.27:
On suppose ici que l'adresse de notre nouveau serveur est 91.243.11.27 (adresse prise complètement au hasard). Attention à ne pas oublier les deux points à la fin ! Sans cela, le transfert ne s'effectuera pas.
Une fois ces étapes achevées, allons sur le nouveau serveur, et créeons le nouveau dépôt qui permettra de prolonger l'existence de l'ancien :
# svnadmin create /var/svn/myNewProject
Et enfin, on charge le contenu de notre sauvegarde dans ce nouveau dépôt.
# svnadmin load /var/svn/myNewProject < ~/myProject.svndump
Et voilà. Il ne vous reste plus qu'à faire un nouveau check out ou éventuellement un relocate pour continuer à travailler, de manière presque transparente, sur votre dépôt.

Cool ton blog, merci twitter de me l'avoir fait connaître, petite question peut être un peu conne, différence entre cvs et svn, c'est quoi le mieux?
CVS et Subversion (SVN) sont tous deux des gestionnaires de version. Cependant, SVN est le successeur de CVS : il intègre toutes les fonctionnalités de celui-ci, avec différentes améliorations : une meilleure gestion des différences de fichiers, possibilité d'effectuer quelques opérations en mode déconnecté, etc.
Bref, pas de questions à se poser : on utilise SVN sauf si on a pas le choix. :)
Bonjour,
J'utilise svn pour synchroniser mes projets depuis Eclipse. Or l'adresse IP sur le serveur hébergeant le SVN a changé. Et je n'arrive pas à la changer à partir d'Eclipse. Savez-vous comment faire ?
Merci d'avance
@krung : As-tu essayé de refaire un check-out de ton dépôt ? Cela serait bien plus simple, non ?
Personnellement, je copie simplement le dossier repositories de l'ancien serveur sur le nouveau, puis les utilisateurs font svn switch --relocate et c'est fini. Quel est l'avantage de svnadmin dump ?