59 votes

Comment migrer un référentiel SVN vers un autre référentiel SVN ?

Existe-t-il un moyen simple de copier un répertoire d'un référentiel dans un autre référentiel en copiant tout l'historique ?

80voto

Adam Points 8165

La méthode la plus simple consiste à utiliser :

svnadmin dump path/to/repos > repos.out

Cela créera un format portable pour votre dépôt (avec l'historique) dans le fichier repos.out . Vous pouvez alors utiliser

svnadmin load path/to/newrepos < repos.out

pour charger votre dépôt "vidangé" vers le nouveau ou l'existant.

Chapitre 5. Maintenance du référentiel -> Migration des données du référentiel vers un autre endroit a cette note sur l'utilisation de svnadmin dump à partir de la version 1.7 :

Le format de vidage de référentiel Subversion décrit les changements de référentiel versionné uniquement. uniquement. Il ne contient pas d'informations sur les transactions non engagées. non validées, les verrous utilisateur sur les chemins du système de fichiers, les personnalisations de la serveur (y compris les hook scripts), et ainsi de suite.

35voto

Steve Schnepp Points 2490

Comme le suggère le Livre sur la subversion :

svnadmin dump path/to/repos_src \
    | svndumpfilter include path/inside/svn/to/directory \
    | svnadmin load path/to/repos_dst

Avec un exemple :

svnadmin dump /var/lib/svn/old_repo \
    | svndumpfilter include trunk/my_project/common_dir \
    | svnadmin load /var/lib/svn/new_repo

24voto

crashmstr Points 15302

Si vous ne voulez pas d'historique, vous pouvez utiliser svn export pour obtenir un dossier propre sans les .svn et ensuite svn import dans votre autre dépôt.

Avec l'historique, vous devez utiliser la fonction svnadmin dump . Vous utiliserez alors svndumpfilter pour filtrer uniquement les parties ou les chemins que vous souhaitez utiliser avant d'utiliser la fonction svnadmin load .

Sujets à lire :

9voto

TomA Points 5600

Utilisez le svnsync - Mise en miroir du référentiel de Subversion commandement :

svnsync est l'outil de mise en miroir des dépôts distants de Subversion. En termes simples, il vous permet de rejouer les révisions d'un dépôt dans un autre.

La documentation de Subversion pour le svnsync a l'avertissement suivant (à partir de la version 1.7) qui implique qu'une fois que certaines autres commandes SVN sont utilisées pour modifier un dépôt miroir, svnsync ne doit plus être utilisé avec ce miroir particulier :

svnsync est très sensible aux changements effectués dans le référentiel miroir qui n'ont pas été faites dans le cadre d'une opération de mise en miroir. Pour éviter cela de se produire, il est préférable que le svnsync est le seul processus autorisé à modifier le référentiel miroir.

7voto

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