svn switch error - ist nicht dasselbe Repository

76

Ich habe kürzlich den SVN-Server verschoben und versuche nun, die Arbeitskopien von meinem Computer auf den neuen Server zu verschieben. Aber ich bekomme den seltsamsten Fehler. ich mache :

svn switch http://99.99.99.new/svn/company/project/trunk/web

aber ich verstehe

svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'

Der Umzug erfolgte mit Dump und Import ... und das Repo-Stammverzeichnis befindet sich unter http://99.99.99.new/svn/company/project

Habt ihr irgendwelche Ideen, was falsch sein könnte? Vielen Dank

Gabriel Solomon
quelle

Antworten:

130

Versuchen Sie es mit

svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web

Wie von Sporino in den Kommentaren bemerkt, gibt es seit Subversion 1.7 einen separaten relocateBefehl:

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
Steef
quelle
1
@Steef also sollte die URL mit der vorherigen identisch sein, außer dass sie auf einen anderen Ort verweist? Also zum Beispiel svn switch --relocate .../project1/trunk/SomeDir .../project2/trunkWount-Arbeit, oder? Ich muss haben svn switch --relocate .../project1/trunk/SomeDir .../project2/trunk/SomeDir?
Eugene
1
Seit Subversion 1.7 gibt es einen neuen Befehl namens relocate, um dasselbe zu tun.
Robert Kühne
@Eugene Umzug an den neuen "Basisstandort" mit svn switch --relocate http://old.location/svn/project/trunk http://new.location/svn/project/trunk. Dies sollte kein vorhandenes Repository sein. Verwenden Sie anschließend den normalen switch-Befehl für Ihr Repository svn switch http://new.location/svn/projects/project/trunk.
Nicky Vandevoorde
23

Außerdem gibt es in TortoiseSVN die Option "Verschieben", die Sie in solchen Situationen verwenden sollten (anstelle der Option "Wechseln").

Pascal Lindelauf
quelle
stimmte zu ... aber ich war auf Ubuntu, so dass keine Optionen verfügbar waren :)
Gabriel Solomon
7

Mein bester Weg, einen SVN-Umzug durchzuführen, ist folgender:

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
                      new_url_or_repository

Auf diese Weise können Sie mit der richtigen alten URL aus dem svn infoBefehl sicher keine falsche eingeben, was einer der häufigsten Fehler ist.

Wenn alles korrekt ist, werden Sie mit den Authentifizierungsdetails für den neuen Speicherort aufgefordert, falls diese unterschiedlich sind.

Stellen Sie nach dem Ausgeben des Befehls sicher, dass die Änderung angewendet wurde, und überprüfen Sie dabei den URL-Parameter, der ausgegeben wird

svn info

Aktualisieren Sie nach dem Umzug Ihre Arbeitskopie, um zu überprüfen, ob alles in Ordnung ist:

svn update

Mein 2c ..

GabrieleV
quelle
4

Verwenden Sie den relocateBefehlszeilenparameter für den switchBefehl.

SVN-Switch-Dokumentation

Manchmal ändert ein Administrator möglicherweise den "Basisspeicherort" Ihres Repositorys. Mit anderen Worten, der Inhalt des Repositorys ändert sich nicht, die Haupt-URL, die zum Erreichen des Stamms des Repositorys verwendet wird, jedoch. Beispielsweise kann sich der Hostname oder das URL-Schema oder nur der Pfad, der zum Repository führt, ändern. Anstatt eine neue Arbeitskopie auszuchecken, können Sie mit dem Befehl svn switch die Anfänge aller URLs in Ihrer Arbeitskopie "neu schreiben". Verwenden Sie den Befehl --relocate, um die Ersetzung durchzuführen. Es werden weder Dateiinhalte geändert noch das Repository kontaktiert. Es ähnelt dem Ausführen eines Perl-Skripts über Ihre Arbeitskopie .svn / directory, auf dem s / OldRoot / NewRoot / ausgeführt wird.

Crashmstr
quelle
1

Sie müssen die Option --relocate verwenden:

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web

Weitere Informationen finden Sie im svnbook .

Peter Parker
quelle
Vielen Dank für den Vorschlag, aber wie BastardSaint schrieb, müssen Sie sowohl von als auch zu URLS angeben
Gabriel Solomon
1
Nur mehr von dem schlechten UI-Design, das mich über Subversion und SVK ärgert. Es kann exotische Anwendungsfälle geben, bei denen Sie zwei URLs angeben müssen, aber die Tools sollten nur die verdammte Standardeinstellung übernehmen. In SVK zum Beispiel soll ich nicht NEED fusionieren Quelle und Ziel angeben, aber ich tue.
Chris K