2009-06-17 12 views
8

Derzeit habe ich eine große SVN-Repository mit einer Reihe von verschiedenen Projekten in ihm, wie folgt:Teil von SVN Repo in neues Repo kopieren?

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

Allerdings bin ich jetzt, es zu brechen in einzelne Repositories (aus verschiedenen Gründen) versucht, und Ich möchte Folgendes für jedes Projekt:

/ 
trunk/ 
tags/ 
branches/ 

Wenn möglich, sollten alle Geschichte und Äußerlichkeiten intakt bleiben. Ich bin mir jedoch nicht sicher, ob dies tatsächlich möglich ist. Ich habe einige ähnliche Fragen zu SO gesehen, aber keine behandelt das Problem, das ich hier habe. Im Grunde versuche ich, ein Unterverzeichnis und seinen gesamten Inhalt mit der Historie aus dem alten Repository "herauszuziehen" und die ganze Menge in ein eigenes (neues) Repository zu plumpsen.

Frage ich das Unmögliche?

+0

Große Frage +1. Es muss möglich sein. Sie werden wahrscheinlich und Aneurysma vor dem Ende haben. –

+0

"Nicht programmieren bezogen" - J/K, ich bin gerade genervt mit dieser Art von Kommentaren, und muss Dampf abblasen :) +1 und favor'd :) – cwap

Antwort

9

Verwenden

svnadmin dump path/to/repository > repo.dmp 

und svndumpfilter dann verwenden, nur einen Teilbaum in ein neues Repository zu laden.

+0

Ja ... das ist was ich meine zu sagen :) –

+1

Danke Stefan (und John), das führte mich zu http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering welche Adressen mein genaues Problem. –

+0

Beachten Sie, dass diese Lösung "ProjectN" als das oberste Verzeichnis des neuen Repository verlässt. (Dh alle Pfade beginnen mit 'ProjectN /') Der Link sagt, wie man den neuen Repo ohne das Präfix importiert, muss aber den Dump von Hand bearbeiten, was bei großen Repos oder mit Binärdateien nicht praktikabel ist. – xOneca

4

Seit 1.7 SVN könnten Sie

svnrdump dump path/to/repository > dump 

verwenden, um die Dump zu erhalten. Während Stefans Lösung funktioniert, erfordert es Zugriff auf den Server, der das Repo hosting. svnrdump funktioniert über das Netz mit jedem Repo, von dem Sie lesen können.

Verwandte Themen