2009-06-17 5 views
8

Actuellement, j'ai un grand dépôt SVN avec un tas de différents projets, comme suit:Copier une partie du dépôt SVN dans un nouveau repo?

/ 
Project1/ 
      trunk/ 
      tags/ 
      branches/ 
Project2/ 
      trunk/ 
      tags/ 
      branches/ 
Project3/ 
      (etc...) 

Cependant, je suis en train d'essayer de le casser dans des dépôts séparés (pour diverses raisons), et Je voudrais ce qui suit pour chaque projet:

/ 
trunk/ 
tags/ 
branches/ 

Si possible, toute l'histoire et doivent rester intacts externals. Cependant, je ne sais pas si cela peut réellement être fait. J'ai vu plusieurs questions similaires à celle sur SO, mais aucune ne répond entièrement à la question que j'ai ici. Fondamentalement, j'essaie de "retirer" un sous-répertoire et son contenu entier avec l'historique de l'ancien référentiel et de replier le tout dans son propre (nouveau) référentiel.

Est-ce que je demande l'impossible?

+0

Bonne question +1. Cela doit être possible. Vous aurez probablement un anévrisme avant la fin. –

+0

"Pas de programmation liée" - J/K, je suis juste ennuyé avec ce type de commentaires, et besoin de souffler un peu de vapeur :) +1 et fave'd :) – cwap

Répondre

9

Utilisez

svnadmin dump path/to/repository > repo.dmp 

puis utilisez svndumpfilter pour charger seulement une sous-arborescence dans un nouveau dépôt.

+0

Ouais ... c'est ce que je veux dire dire :) :) –

+1

Merci Stefan (et John), cela m'a conduit à http://svnbook.red-bean.com/fr/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering quelles adresses mon problème exact. –

+0

Notez que cette solution laisse 'ProjectN' comme répertoire de premier niveau du nouveau référentiel. (Ie tous les chemins commencent par 'ProjectN /') Le lien indique comment importer le nouveau repo sans le préfixe, mais doit éditer le dump à la main, ce qui n'est pas pratique avec de gros repos ou avec des fichiers binaires. – xOneca

4

Depuis SVN 1.7, vous pouvez utiliser

svnrdump dump path/to/repository > dump 

pour obtenir la décharge. Bien que la solution Stefans fonctionne, elle nécessite l'accès au serveur hosttig le repo. svnrdump fonctionne sur le net avec tous les repo que vous pouvez lire.

Questions connexes