2009-09-14 8 views
7

Quel est le moyen le meilleur/le plus simple/le plus rapide de déplacer un projet d'une copie locale vers un nouveau référentiel?Comment déplacer un projet dans un nouveau référentiel SVN?

La machine hébergeant le référentiel d'origine est morte et je suis en train de recréer un repo sur une nouvelle machine à partir de copies locales.

EDIT: (. Pour soutenir la commande rm) Je aurais dû mentionner que tous les clients sont des machines Windows et une seule a cygwyn

Répondre

12

Tout le monde ici suggère de supprimer les dossiers svn. SVN a une commande "export" pour faire une copie du dossier sans les dossiers .svn, qui est prêt pour l'importation plus tard.

+0

Oh, bonne prise! Je n'ai jamais remarqué cette deuxième utilisation avant. – timdev

+0

Cela ne nécessiterait-il pas une connexion au repo - qui est maintenant parti - pour fonctionner? (l'exportation de cvs tire du repo, l'exportation de svn est-elle différente?) –

+0

Merci Marc. C'était de loin la suggestion la plus propre et celle que j'ai fini par suivre. La raison pour laquelle je ne reviendrai pas sur les autres réponses est qu'elles ne représentent que les dossiers .svn et supposent également la disponibilité d'une commande rm. De nombreux dossiers et fichiers doivent être «nettoyés» avant qu'une importation correcte puisse être effectuée et que l'exportation Tortoise s'en occupe. (dossiers bin par exemple.) –

0
rm -rf `find . -name .svn` 
svn import [...] 

Bien sûr, vous aurez pas l'histoire, depuis l'original repo est mort, et vous ne devez pas avoir de sauvegarde.

0

Copiez la source dans un nouvel emplacement, supprimez tous les sous-répertoires .svn. Importez le résultat net.

0

Si le référentiel d'origine est vide, vous avez perdu l'historique. La meilleure chose à faire est de supprimer les répertoires .svn dans l'arborescence (rm -rf find ./ -iname .svn) et de réimporter la source dans un nouveau référentiel créé sur le nouveau serveur