it-swarm.com.de

Verschieben eines Subversion-Repositorys auf einen anderen Server

Ich habe einen Server, der meine Subversion-Codebasis hostet. Dieser Server ist derzeit ein Windows Server 20 Feld, und mein IT-Administrator möchte es auf Windows Server 2008 aktualisieren.

Das bedeutet, dass ich mein Subversion-Repository verschieben muss, während der Server aufgebaut wird, und mich gefragt habe, wie das Repository am besten auf einen neuen Server verschoben werden kann.

Wenn Sie online suchen, ist es anscheinend empfehlenswert, Folgendes zu verwenden:

svnadmin dump /path/to/repository > repository-name.dmp

Und dann benutze:

svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp

So importieren Sie das Repository.

Scheint die obige Methode der beste Ansatz zu sein?

66
Ryan Smith

Ja, das Repository zu entleeren und zu laden ist ein weiter Weg. Das direkte Kopieren des Repository-Ordners ist nur dann eine praktikable Option, wenn Sie sicher sind, dass während des Kopiervorgangs niemand auf das Repository zugreift (oder Sie können eine "Hot Copy" des Repositorys erstellen, die diese Fälle behandelt auf sichere Weise).

Sie müssen auch entweder alle Ihre Arbeitskopien erneut auschecken oder den Befehl svn switch verwenden, der lediglich URLs neu schreibt. Eine bequemere Möglichkeit ist die Verwendung des Befehls Verschieben von TortoiseSVN, mit dem das Risiko eines Fehlers während des Verschiebungsprozesses verringert wird.

58
petr k.

Meine Wiederherstellungsskripte lauten wie folgt:

svnadmin create repository-name --fs-type fsfs
svnadmin load   repository-name --force-uuid < repository-name.dmp

Die erste Zeile stellt sicher, dass das Repository das Backend FSFS verwendet (das von vielen Quellen empfohlen wird, darunter dieses: Wie FSFS besser ist , und AFAIK neuere Versionen von Subversion verwenden es als Standard). . FSFS ist der Name einer Subversion-Dateisystem-Implementierung.

Die zweite Zeile enthält die UUID des Repositorys für einen einfacheren Übergang (ohne --force-uuid wechseln, der Umzug der Arbeitskopie schlägt fehl).

Einige Links:

27
alexandrul

Sie können auch svnsync verwenden, um das Repository zu verschieben. Auf diese Weise können Sie alle Daten übertragen, ohne das 'alte' Repository herunterfahren zu müssen. Dies ist auch die einzige mir bekannte Möglichkeit, Ihre Daten aus gehosteten Umgebungen abzurufen, in denen Sie keinen Shell-Zugriff oder Zugriff auf das Dumping des Repositorys haben.

9
Sander Rijken

Eine andere Alternative:

benutze svnrdump. http://www.crowbarsolutions.com/backing-up-restoring-a-remote-svn-repository/

"Sie benötigen ein Tool namens" svnrdump ". Wie von Apache beschrieben, repliziert" svnrdump "die Funktionalität von" svnadmin dump "und" svnadmin load ", arbeitet jedoch mit Remote-Repositorys, anstatt Administratorzugriff (lokales Dateisystem) auf das Quell- oder Ziel-Repository zu benötigen . "

5
JRun

Wenn Sie das Repository vom Typ Dateisystem verwenden, können Sie den Ordner, der Ihr Repository enthält, buchstäblich nehmen und verschieben. Wenn Sie Server wechseln, müssen Sie möglicherweise den Speicherort ändern, an dem Ihr lokales Arbeitsverzeichnis nach dem Repository sucht, indem Sie den Befehl 'Relocate' verwenden.

4
NerdFury

Der einfachste Weg ist:

svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory
1
orezvani