Wenn man ein SVN-Repository umzieht, dann ändert sich in der Regel auch die URL zu diesem. Möchte man nun aber wie gewohnt die Dateien auschecken, muss man dem SVN erstmal die neue Location des Repositorys mitteilen.
Dies geschieht mit dem Befehl:
svn switch --relocate https://altesrepository/trunk http://neuesrepository/trunk
Möchte man lediglich zu einem anderen Branch im Repository wechseln verwendet man:
svn switch https://altesrepository/trunk http://neuesrepository/trunk
Eine Warnung aus dem Handbuch:
Vorsicht mit dem Schalter
--relocate
. Wenn man sich bei der URL verschreibt kann man schnell mit einer Arbeitskopie enden, die komplett funktionsuntüchtig und gewöhnlich nur schwer wieder herzustellen ist. Es ist wichtig zu unterscheiden, wann man –relocate verwenden soll und wann nicht.
Faustregel:
- Wenn die Arbeitskopie einen neuen Speicherort innerhalb des Repositorys bekommt, benutzt man nur svn switch.
- Bleibt das Repository-Verzeichnis das gleiche, aber der Ort des Repositories ändert sich wird svn
switch –relocate
verwendet.
Testen
Wenn nun scheinbar alles geklappt hat, dann möchte man ja sicherheitshalber erstmal testen, ob alles richtig funktioniert, bevor man sich unter Umständen ein Live-System oder auch nur ein Test-System zerschießt. Leider gibt es soweit ich das herausfinden konnte keine Mögklichkeit, zum Beispiel ein update –test oder ähnliches auszuführen.
Update ist jedoch eigentlich nur ein Alias für svn merge -r BASE:HEAD
Man kann also einfach in das entsprechende Verzeichnis wechseln und mit
svn merge --dry-run -r BASE:HEAD .
sich anschauen, welche Dateien upgedatet werden würden und ob das überhaupt alles richtig funktioniert. Der letzte Punkt in der Befehlszeile ist übrigens wichtig, da er das Zielverzeichnis (in diesem Fall also das aktuelle) angibt. Wenn nun alles ordnungsgemäß verlaufen ist, sollte man auf der sicheren Seite sein.
