2009-05-29 4 views
75

Ich habe vor kurzem den SVN-Server verschoben und jetzt tring ich die Arbeitskopien von meinem Computer auf den neuen Server verlagern. Aber ich bekomme den seltsamsten Fehler. i tun:Svn Switch-Fehler - ist nicht das gleiche Repository

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

aber ich bekomme

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 mit dump und Import gemacht wurde ... und die Repo-Wurzel ist auf http://99.99.99.new/svn/company/project

Haben Sie Jungs haben alle Ideen von Was könnte falsch sein? Dank viel

Antwort

127

Versuchen

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

Verwendung Wie Sporino in den Kommentaren erwähnt, da Subversion 1.7, gibt es eine separate relocate Befehl:

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web 
+0

dank .. es hat funktioniert: D –

+0

+1, wie ich diese Suche nach einer Antwort tatsächlich gefunden :) – Unreason

+0

+1, für gleiche wie oben –

1

Sie müssen die --relocate verwenden Option:

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

siehe svnbook fo r mehr Details.

+0

danke für den Vorschlag, aber wie BastardSaint schrieb, müssen Sie sowohl von als auch von URLs angeben –

+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 den verdammten Standard übernehmen. In SVK, zum Beispiel, sollte ich nicht * müssen * merge Quelle und Ziel angeben, aber ich tue. –

4

Verwenden Sie den Befehlszeilenparameter relocate für den Befehl switch.

svn switch documentation

Manchmal ein Administrator der „Basisposition“ Ihr Repository ändern - mit anderen Worten, der Inhalt des Repository ändert sich nicht, aber die Haupt-URL verwendet, um die Wurzel der zu erreichen Repository tut es. Zum Beispiel kann sich der Hostname ändern oder das URL-Schema oder vielleicht nur der Pfad, der zum Repository führt. Anstatt eine neue Arbeitskopie auszuprobieren, 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 wird das Repository kontaktiert. Es ähnelt dem Ausführen eines Perl-Skripts über Ihre Arbeitskopie .svn/directories, die s/OldRoot/NewRoot/ausführt.

23

Auch in TortoiseSVN es "umziehen" -Option, die Sie in Situationen wie diese (anstelle der "Switch" Option) verwenden sollten.

+0

einverstanden ... aber ich war auf Ubuntu, so dass Optionen nicht verfügbar war :) –

+1

+1 für die Tortoise-Hilfe. – jachguate

7

Meine beste Weg, um eine SVN Verlagerung zu tun, ist dies:

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

Auf diese Weise die richtige alte URL aus dem svn info Befehl, Sie sicher sind, nicht eine falsche Eingabe, die eine der ist der gewöhnliche Fehler.

Wenn alles korrekt ist, werden Sie aufgefordert, die Authentifizierungsdetails für den neuen Standort einzugeben, falls sie sich unterscheiden.

Nach Ausgabe des Befehls, sollten Sie überprüfen, verdoppeln, dass die Änderung in der URL-Parameter angewendet wurde gesucht, die Ausgabe

svn info 

Nach verlagern, aktualisieren Sie Ihre Arbeitskopie, dass alles, was zu überprüfen ist ok:

svn update 

Meine 2c ..

Verwandte Themen