SVN - Ändern Sie die Arbeitskopie so, dass sie auf den neuen SVN-Pfad zeigt

85

Ich habe ein SVN-Repository, das an eine neue Adresse / einen neuen Pfad verschoben wurde. Ich habe jedoch eine Arbeitskopie mit nicht festgeschriebenem Quellcode, die immer noch auf den alten (jetzt ungültigen) Repository-Pfad verweist. Wie ändern Sie eine Arbeitskopie, um auf ein neues Repository zu verweisen?

Quano
quelle

Antworten:

76

svn switch --relocateist ab Version 1.7 der Subversion veraltet. Verwenden Sie svn relocatestattdessen den Befehl.

Es braucht entweder FROM-PREFIX TO-PREFIX [PATH...]oder TO-URLals Argumente.

Sehen

svn help relocate

für mehr Informationen.

Michael Krebs
quelle
58

Verwenden Sie den svn switchBefehl mit der --relocateBefehlszeilenoption.

Greg Hewgill
quelle
1
Vielen Dank. Dies ist, was ich verwendet habe: svn switch - Datei verschieben: /// Benutzer / Benutzer / altes_Repository / Projekt / Trunk-Datei: /// Benutzer / Benutzer / neues_Repository / Projekt / Trunk
Quano
Behebt die URLs in svn: externals nicht. Irgendeine Idee, wie das geht?
Axel Bregnsbo
26

Verwenden von TortoiseSVN

  1. Klicken Sie mit der rechten Maustaste auf die Arbeitskopie und wählen Sie "SVN-Schalter ...".
  2. Auf dem Formular 'Zum Zweig wechseln' Wählen Sie einen neuen SVN-Pfad aus

Befehl verwenden

  1. Konsole öffnen
  2. Navigieren Sie zur Arbeitskopie cd [working copy path]
  3. Schreiben Sie den Befehl svn relocate [new url]
Ahmed Abdallah
quelle
Dies gilt nur bei Verwendung von TortoiseSVN, auf dem auf dem Poster nicht angegeben ist, dass er oder sie verwendet wird.
zck
Hallo @zck, bitte beachte, dass ich 2 Lösungen in 1 Antwort geschrieben habe. Erste TortoiseSVN und die zweite ist Befehl. Dieser Befehl ist für die Subversion im Allgemeinen veraltet. Sie können diese Seite überprüfen.
Ahmed Abdallah
Nun, Ihre Antwort wurde bearbeitet, nachdem ich kommentiert habe, dass sie eine Befehlszeilenmethode enthält. Diese Befehlszeilenantwort wurde bereits im Juni veröffentlicht, sodass sie nicht wiederholt werden muss.
Zck
Nein, ich poste die Antwort in den aktuellen Worten meiner Bearbeitung, nur um die Formatierung zu verbessern. und ich denke, der Befehl, den ich schrieb, ist klarer als der, der im Juni geschrieben wurde
Ahmed Abdallah
Die TortoiseSVN-GUI-Methode erfordert einen Klick auf "Verschieben" und keinen Wechsel. Was angesichts der Befehlszeile Sinn macht. Ich bin mir nicht sicher, was der Schalter tun würde - es schien zu versuchen, auf die alte und die neue URL zuzugreifen, was ich nicht wollte.
Gerard ONeill
12

Präziser sein

svn switch --relocate [complete url of the old repo] [complete url of the new repo] 

Beispielsweise:

svn switch --relocate  http://svn.repo.com:9880/website/branches  http://svnrepo.com/web/branches 
BTR Naidu
quelle
3

Verwenden von TortoiseSVN tortoisesvn docs

  1. Wechseln Sie zum Stammordner der Arbeitskopie
  2. Klicken Sie mit der rechten Maustaste, klicken Sie auf das Untermenü TortoiseSVN, klicken Sie auf Verschieben.
  3. Geben Sie den neuen Pfad ein
Yitzhak Weinberg
quelle
1

Sehr einfach :

Schritt 1: Öffnen Sie die Eingabeaufforderung / das Terminal und legen Sie den Arbeitspfad fest

Schritt 2: Führen Sie diese Zeile aussvn switch --relocate http://newurl

Rajesh Loganathan
quelle
0

Ich hatte meinen SVN-Server geändert, um die Umleitung von HTTP zu HTTPS zu erzwingen (und es könnte eine Umleitung zu einer anderen URL gewesen sein), und ich bemerkte, dass dieser svn relocateBefehl viele Probleme mit externen Geräten verursachte. Glücklicherweise stellte ich fest, dass es am einfachsten war, nur einen svn updatezu erstellen, und aufgrund der Umleitung des SVN-Servers wurden alle in der lokalen Arbeitskopie gespeicherten URLs, einschließlich der externen, aktualisiert.

Gunther Schadow
quelle