2010-12-21 4 views
0

Mein SVN-Server ist tot.Verschieben eines SVN-Repository, wenn der Server tot ist

Ich habe eine andere Maschine, die ich als SVN-Server und ein paar Maschinen mit Arbeitskopien des Original-Repository verwenden könnte.

Gibt es eine saubere Möglichkeit, das Repository auf einem neuen Server nur von einer aktuellen Arbeitskopie neu zu erstellen? (Geschichte kann vergessen werden)

Ich habe versucht, ein neues Repository zu erstellen, Hacken seiner UUID und Einchecken der vollständigen Verzeichnisstruktur, dann -relocate'ing die Arbeitskopien, aber dies funktioniert nicht wegen Prüfsummen und Revision Nummern stimmen nicht überein.

Jede Hilfe würde wirklich geschätzt werden!

+1

Ist die Festplatte zerstört, oder können Sie sie auf einer anderen Maschine installieren und das Repository-Verzeichnis kopieren? – Anon

+1

Wenn Ihnen Geschichte egal ist, warum sollten Sie Ihre Arbeitskopie aufbewahren? Importieren Sie einfach, was Sie haben, zu einem völlig neuen Repo und überprüfen Sie dann eine neue Arbeitskopie. ??? –

+0

Anon - Die Festplatte ist immer noch da, aber ich habe keine andere Desktop-Maschine zur Hand. Ich muss vielleicht einen IDE/USB-Adapter ausgraben ... Nathan - ich könnte das machen; Ich hatte gehofft, dass ich irgendwann die Maschine mit der Geschichte wiederbeleben könnte, so dass ich herausfinden konnte, welche Geschichte es gibt ... – Rick

Antwort

1

Sie haben überhaupt keine Backups?

Wenn dies der Fall ist, besteht der einfachste Ansatz darin, ein neues Repository zu erstellen, den Inhalt eines Arbeitsverzeichnisses darin zu importieren und anschließend alle anderen Benutzer aus dem neuen Repository auschecken zu lassen. Der Versuch, die vorhandenen Arbeitsverzeichnisse zu hacken, wird mehr Probleme bereiten, als es wert ist.

Sie sollten sicherstellen, dass das "Master" Arbeitsverzeichnis sauber ist: tun Sie eine svn revert darauf, dann entfernen Sie alle .svn Verzeichnisse - beachten Sie, dass es eine auf jeder Ebene des Baumes (unbedingt eine Kopie vor tun dies). Wenn Sie Änderungen in anderen Arbeitsverzeichnissen beibehalten möchten, können Sie die Verzeichnisse .svn von ihnen entfernen und ein Tool wie cpio verwenden, um die Dateien in die neuen Arbeitsverzeichnisse zu kopieren.

+0

Danke für die volle Antwort! Ich habe eine Sicherungskopie von mehreren Monaten, aber wenn ich das benutze, um ein neues Repository zu erstellen, beschwert es sich über nicht übereinstimmende Prüfsummen ... Ich denke, von Neuem zu beginnen ist der einzige Weg! Ich könnte alle meine .svns als .svn-backup umbenennen, nur damit ich zu meinem alten Repository zurückkehren kann, sollte ich den Rechner jemals wiederbeleben. Danke noch einmal! – Rick

+0

@Rick - Mit dem Befehl 'svnadmin setuuid' können Sie das Prüfsummenproblem umgehen. Ich denke jedoch, dass es besser wäre, den Repo aus dem Backup zu erstellen, in ein neues Arbeitsverzeichnis zu gehen und dann die neuesten Dateien mit dem oben beschriebenen Verfahren zu kopieren. – Anon

+0

Ok, ich habe das getan (mit dem umbenannten statt gelöscht.svns) - leider habe ich komplett vergessen, dass es Dateien und Verzeichnisse gibt, die ich nicht einchecke (Verzeichnisse erstellen usw.), also werde ich jetzt ein wenig Kopfschmerzen haben, sie zu entfernen. Bah ... Danke nochmal. – Rick

2

Wenn Sie bereit sind, den Verlauf aufzugeben, können Sie ein neues Repository erstellen und Ihre Arbeitskopie als neuen Inhalt hinzufügen. Um dies zu tun, müssen Sie jedoch zuerst alle .svn Ordner entfernen. Etwas Scripting könnte das tun.

Stellen Sie sicher, dass Sie all dies mit einer Kopie Ihrer Arbeitskopie machen, da dies das letzte zu sein scheint, an dem Sie sich festhalten müssen.

+0

Gibt es eine Möglichkeit, die Historie zu bewahren und das Repository in das neu erstellte Repo zu importieren. – Krunal

+0

@Krunal: Sehen Sie sich [svnadmin] an (http://stackoverflow.com/q/1516491/140719). – sbi

+0

Danke für den Hinweis. – Krunal

2

svn export ist der richtige Weg, .svn-Ordner zu entfernen.

+1

Funktioniert das sogar, wenn Sie keinen Zugriff auf den SVN-Server haben? (Und wie beantwortet das die Frage?) – sbi

+1

-1: Sein Server mit dem Repo drauf ist tot! Svn-Export wird hier nicht helfen, wenn die Festplatte nicht wiederherstellbar ist. – jgifford25

+0

@ jgifford25: Beachten Sie, dass Sie in eine Arbeitskopie exportieren können, mit der Sie alle .svn-Ordner entfernen können. Wie ich jedoch geschrieben habe, bezweifle ich, dass dies funktioniert, ohne dass das Repo zugänglich ist. ICBWT. – sbi