Comment faire pour déplacer un dépôt SVN vers un nouveau serveur
Nous tenons à fusionner les deux de nos serveurs et pour ce faire nous aurions besoin d'installer SVN sur le "nouveau" serveur et ensuite se déplacer sur l'ensemble de nos référentiels que nous avons mis en place sur notre "vieux" serveur.
Est-ce une opération facile à faire? Éventuellement à l'aide de la "Relocaliser" l'option que TortoiseSVN fournit? Quelle est la meilleure façon de le faire?
Serait-ce un bon moment pour ré-organiser la manière dont le référentiel est mis en place ainsi?
- Voici de la documentation sur "Déplacer" qui est uniquement destiné à aider votre copie de travail à trouver les déplacés référentiel. Le droit-cliquez sur l'option de menu apparaît uniquement dans copie de travail racines.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez migrer un référentiel à l'aide de la
svnadmin dump
fonction. Sur le serveur SVN, typesvnadmin dump /absolute/path/to/the/repo > /tmp/repo.svndump
. Cela permettra d'exporter la totalité du dépôt d'un fichier texte dans le répertoire temporaire et nommez-le "repo.svndump". Vous pourriez vouloir compresser ce fichier avant de le transférer vers le nouveau serveur.Une fois que vous avez le repo exporté, vous pouvez ensuite transférer le fichier de vidage sur le nouveau serveur et de les importer comme suit:
svnadmin load /absolute/path/to/the/**new**/repo < repo.svndump
.Voir " svnadmin dump " et " svnadmin load pour plus d'informations.
Après dumping, le référentiel et le charger sur le nouveau serveur, vous devez utiliser la
--relocate
commande pour changer votre copie locale sur le nouveau serveur.Attention: Si vos dépôts utiliser tout
externals
alors vous allez avoir des problèmes. Voir ma question sur le Serveur Faute pour plus de détails à ce sujet.svn: E175002: Commit failed (details follow): svn: E175002: PROPFIND of '/Project/Project/src/dashboards/BasicLineGraph.java': 500 Internal Server Error (http://www.domain.com)
à essayer de comprendre ça.. je l'ai réinstallé plusieurs fois, pas de dés.repo
d'abord avant que je puisse charger le dump avec succès.Si le nouveau serveur utilise le même système d'exploitation que vous pouvez simplement copier l'intégralité du dossier de référentiel pour le nouveau serveur. Pas besoin de vider et de le recharger.
Le déplacer de commande vous permet de pointer votre copie de travail vers le nouveau serveur c'est à dire à ne pas vous aider à déplacer le référentiel, il sauve juste de faire une nouvelle caisse.
Externes peut être un problème, mais n'ont pas à l'être. Si le dépôt était sur le même serveur, alors vous avez probablement spécifié externe avec une URL relative. Si le nouveau serveur utilise la même structure, alors tout devrait fonctionner parfaitement.
CLONE-SVN2SVN
Si
svnadmin dump
n'est pas une option, vous pouvez utiliser le clone-svn2svn script bash. Il copie un répertoire SVN à l'autre SVN site avec de la compétition ou de la révision partielle de l'histoire. Ci-dessous sont les principaux paramètres de ligne de commande. Vous pouvez également définir la révision à partir de laquelle vous souhaitez que le clone pour démarrer la copie de l'histoire.Exigences
Bash et git sont nécessaires pour que le script fonctionne. Si vous êtes sur Windows ou une autre plate-forme, les télécharger à partir de git-scm site web. C'est un git installer avec bash inclus.
Détails
Le script télécharge la source SVN histoire d'un temporaire dépôt git en utilisant
git-svn
et télécharge l'histoire de la cible repo SVN.Lacunes
L'auteur dans les révisions dans la cible repo sera l'utilisateur qui exécute le script (vous-même). Cependant, chaque révision message aura une ligne supplémentaire en précisant l'auteur original. Il n'est pas trop mauvais.
Moment idéal pour le faire, car vous aurez à prendre votre référentiel vers le bas de toute façon tout vous de migrer vers le nouveau serveur.