66 votes

Subversion - Déplacer le référentiel

J'ai un serveur qui héberge ma base de code Subversion. Ce serveur est actuellement une boîte Server 2003, et mon administrateur informatique veut le mettre à jour vers Server 2008.

Cela signifie que je vais devoir déplacer mon dépôt Subversion pendant la construction du serveur et je me demandais quelles étaient les meilleures pratiques pour déplacer le dépôt sur un nouveau serveur.

Il semble qu'en regardant en ligne, la méthode recommandée est d'utiliser :

svnadmin dump /path/to/repository > repository-name.dmp

et ensuite utiliser :

svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp

Pour importer le référentiel.

Quelqu'un a-t-il une opinion à ce sujet, ou la méthode ci-dessus semble-t-elle être la meilleure approche ?

Gracias.

58voto

petr k. Points 4890

Oui, le vidage et le chargement du référentiel est une solution. Copier directement le dossier du référentiel est une option viable si et seulement si vous êtes certain que personne n'accédera au référentiel pendant le processus de copie (ou vous pouvez faire une "copie à chaud" du référentiel, qui peut gérer ces cas de manière sûre).

Vous devrez aussi soit recontrôler toutes vos copies de travail, soit utiliser la fonction changement de svn qui ne fait que réécrire les URL. Une manière plus pratique est d'utiliser la commande de TortoiseSVN Relocaliser ce qui réduit le risque de commettre une erreur lors du processus de relocalisation.

27voto

alexandrul Points 6775

Mes scripts de restauration sont les suivants :

svnadmin create repository-name --fs-type fsfs
svnadmin load   repository-name --force-uuid < repository-name.dmp

La première ligne assure que le référentiel utilise le FSFS (qui est recommandé par de nombreuses sources, dont celle-ci : Comment FSFS est meilleur (et AFAIK les nouvelles versions de Subversion l'utilisent par défaut).

La seconde ligne conserve l'UUID du référentiel, pour une transition plus facile (sans --force-uuid la relocalisation de la copie de travail échouera).

Quelques liens :

9voto

Sander Rijken Points 15425

Vous pouvez également utiliser svnsync pour déplacer le référentiel ; de cette façon vous pouvez transférer toutes les données sans avoir besoin de démonter l'"ancien" référentiel. C'est également le seul moyen que je connaisse pour obtenir vos données à partir d'environnements hébergés, où vous n'avez pas d'accès shell ou d'accès pour vider le référentiel.

5voto

JRun Points 552

Une autre alternative :

utiliser svnrdump. http://www.crowbarsolutions.com/backing-up-restoring-a-remote-svn-repository/

"Vous allez avoir besoin d'un outil appelé svnrdump. Comme décrit par Apache, "svnrdump réplique la fonctionnalité de svnadmin dump et svnadmin load, mais fonctionne sur des dépôts distants, au lieu de nécessiter un accès administrateur (système de fichiers local) au dépôt source ou cible."

4voto

NerdFury Points 9935

Si vous utilisez un référentiel de type système de fichiers, vous pouvez littéralement prendre le dossier contenant votre référentiel et le déplacer. Si vous changez de serveur, il est probable que vous deviez modifier l'emplacement du référentiel dans votre répertoire de travail local en utilisant la commande "Relocate".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X