Ich habe kürzlich Subversion-Repositorys von einer alten 1.2.3-Version auf 1.6.0 über svnadmin dump / load aktualisiert . Die alten Repositorys verwendeten alle dieselbe UUID (Repositorys wurden durch Kopieren eines Vorlagen-Repositorys erstellt). Ich habe die UUID einiger neuer Repositorys über svnadmin setuuid geändert , um sie eindeutig zu machen. Ich kann meine vorhandenen Arbeitskopien dieser Repositorys nicht einfach verschieben, da die UUIDs unterschiedlich sind. Ich kenne mich mit dem Exportieren der Arbeitskopie und dem Auschecken aus dem neuen Repository aus, habe mich aber gefragt, ob es eine Möglichkeit gibt, die UUID der Arbeitskopie direkt zu ändern, z. B. was svnadmin setuuid für Repositorys tut.
Hier ist ein Befehl, der den Trick für SVN 1.6 und darunter ausführt:
Ersetzen Sie
old-uuid
undnew-uuid
mit den tatsächlichen IDs.quelle
sed -i "" 's/old-uuid/new-uuid/'
und es funktioniert (nur die zusätzlichen leeren Anführungszeichen) ( ref )Die Antwort von Yves Martin hat bei einer Reihe von Arbeitskopien mit SVN 1.8 sehr gut funktioniert, aber wir sind auf Fälle gestoßen, in denen es nicht funktioniert hat.
Das Ausführen von Yves 'Befehl ohne "where id = 1" funktionierte in allen Fällen für uns:
Als ich nachforschte, warum dies geschah, stellte ich fest, dass beim Verschieben des Repositorys mehrere UUIDs gespeichert werden, entgegen der Intuition von Yves, dass dies niemals passieren sollte.
Ein neuer Eintrag in die REPOSITORY-Tabelle wird nach einem Umzug hinzugefügt, anstatt den vorhandenen zu aktualisieren. Dabei wird eine inkrementierte ID mit dem neuen Repository-Stammverzeichnis und seiner UUID gespeichert. Die Fälle, die nicht richtig funktionierten, waren also die Arbeitskopien, die bereits in der Vergangenheit verschoben wurden: Der Befehl schien zu funktionieren, aber nur die ursprüngliche UUID wurde geändert, nicht die derzeit verwendete.
Mit diesem Befehl kann die Liste der gespeicherten Roots und UUIDs in einer Arbeitskopie überprüft werden:
Ich stelle schließlich fest, dass ich für Windows-Befehlszeilen- / Batchdateien einen anderen Satz von Anführungszeichen verwenden musste:
quelle
Der Abschnitt " Verwalten von Repository-UUIDs " in svn red-bean book enthält möglicherweise die Antwort, nach der Sie suchen.
quelle