SVN - Zmień kopię roboczą tak, aby wskazywała na nową ścieżkę svn

87

Mam repozytorium SVN, które zostało przeniesione pod nowy adres / ścieżkę. Jednak mam kopię roboczą z niezatwierdzonym kodem źródłowym nadal wskazującym na starą (teraz nieprawidłową) ścieżkę repozytorium. Jak zmienić kopię roboczą, aby wskazywała na nowe repozytorium?

quano
źródło

Odpowiedzi:

78

svn switch --relocatejest przestarzałe od wersji 1.7 subversion. svn relocateZamiast tego użyj polecenia.

Zajmuje albo FROM-PREFIX TO-PREFIX [PATH...]czy TO-URLjako argumenty.

Widzieć

svn help relocate

po więcej informacji.

Michael Krebs
źródło
58

Użyj svn switchpolecenia z --relocateopcją wiersza poleceń.

Greg Hewgill
źródło
1
Dzięki. Oto, czego użyłem: svn switch --relocate file: /// Users / user / old_repository / project / trunk file: /// Users / user / new_repository / project / trunk
quano
Nie naprawia adresów URL w svn: externals. Masz jakiś pomysł, jak to zrobić?
Axel Bregnsbo
26

Korzystanie z TortoiseSVN

  1. Kliknij prawym przyciskiem myszy kopię roboczą i wybierz opcję „SVN Switch ...”
  2. W formularzu „Przełącz na oddział” Wybierz nową ścieżkę SVN

Korzystanie z polecenia

  1. Otwórz konsolę
  2. Przejdź do kopii roboczej cd [working copy path]
  3. Napisz polecenie svn relocate [new url]
Ahmed Abdallah
źródło
Ma to zastosowanie tylko wtedy, gdy używasz TortoiseSVN, którego plakat nie wskazuje, że używa.
zck
Cześć @zck, zauważ, że napisałem 2 rozwiązanie w 1 odpowiedzi najpierw TortoiseSVN, a drugie to Polecenie to polecenie jest przestarzałe dla subversion w ogóle możesz przejrzeć tę stronę svn relocate / svn Subcommands
Ahmed Abdallah
Cóż, twoja odpowiedź została zredagowana po tym, jak skomentowałem, aby uwzględnić sposób robienia tego z wiersza poleceń. Ta odpowiedź z wiersza poleceń została już opublikowana w czerwcu, więc nie ma potrzeby jej powtarzać.
zck
Nie, zamieszczam odpowiedź w jej aktualnych słowach jako moja edycja tylko po to, aby poprawić formatowanie; i myślę, że polecenie, które napisałem, jest wyraźniejsze niż to, które zostało napisane w czerwcu
Ahmed Abdallah
Sposób GUI TortoiseSVN wymaga kliknięcia „Przenieś”, a nie przełączenia. Co ma sens, biorąc pod uwagę wiersz poleceń. Nie jestem pewien, co zrobi przełącznik - wydawało się, że próbuje uzyskać dostęp do starego i nowego adresu URL, coś, czego nie chciałem, żeby robił.
Gerard ONeill
12

Być bardziej dokładnym

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

Na przykład:

svn switch --relocate  http://svn.repo.com:9880/website/branches  http://svnrepo.com/web/branches 
BTR Naidu
źródło
3

Korzystanie z TortoiseSVN tortoisesvn docs

  1. Przejdź do głównego folderu kopii roboczej
  2. Kliknij prawym przyciskiem myszy, kliknij Podmenu TortoiseSVN, kliknij Zmień położenie.
  3. Wprowadź nową ścieżkę
Yitzhak Weinberg
źródło
1

Bardzo proste :

Krok 1: Otwórz wiersz polecenia / terminal i ustaw ścieżkę roboczą

Krok 2: Wykonaj tę linięsvn switch --relocate http://newurl

Rajesh Loganathan
źródło
0

Zmieniłem serwer svn, aby wymusić przekierowanie wszystkiego z HTTP na HTTPS (i mogło to być przekierowanie na dowolny inny adres URL) i zauważyłem, że to svn relocatepolecenie powoduje wiele problemów z zewnętrznymi. Na szczęście odkryłem, że najłatwiej było po prostu zrobić svn updatei ze względu na przekierowanie serwera svn zaktualizował wszystkie adresy URL przechowywane w lokalnej kopii roboczej, w tym zewnętrzne.

Gunther Schadow
źródło