Moja obecna struktura SVN:
Path: .
URL: svn://someaddress.com.tr/project
Repository Root: svn://someaddress.com.tr
Repository UUID: -------------------------------------
Revision: 10297
Node Kind: directory
Schedule: normal
Last Changed Author: ----
Last Changed Rev: 9812
Last Changed Date: 2010-12-20 17:38:48 +0100 (Mon, 20 Dec 2010)
Ale nasz projekt (stąd usługa SVN) będzie działał sub.someaddress.com.tr
zamiast someaddress.com.tr
(someaddress.com.tr zostanie wkrótce przekierowany do innego miejsca).
Ponieważ jest to serwer deweloperski, nie byłem pewien, co mam robić. Czy będę musiał użyć svn switch
lub svn switch --relocate
? Czy będę musiał zmienić katalog główny svn someaddress.com.tr lub gałąź projektu someaddress.com.tr/project ?
źródło
svn switch --relocate OLD NEW
switch
poleceniu, cała dokumentacja, którą znalazłem online, dotyczy nowszych wersji.Grepowanie adresu URL przed i po może dać ci spokój:
Sprawdzanie wersji (która ma być> 1.7) w celu upewnienia się, że
svn relocate
jest to właściwe rozwiązanie:Na koniec, dodając do powyższego, jeśli zmiana adresu URL repozytorium obejmuje również zmianę protokołu, może być konieczne podanie adresu URL przed i po ( zobacz także tutaj )
Oczywiście wszystko w jednym wierszu, a potem poczuj, że wszystko poszło gładko:
Jeśli masz na to ochotę, trochę więcej pewności siebie, nowy adres URL repozytorium svn jest podłączony i działa:
źródło
W moim przypadku
svn relocate
polecenie (a takżesvn switch --relocate
) zawiodło z jakiegoś powodu (może repozytorium nie zostało poprawnie przeniesione lub coś innego). Napotkałem ten błąd:Nie chciałem ponownie pobierać całego repozytorium, więc znalazłem obejście. W moim przypadku zadziałało, ale generalnie mogę sobie wyobrazić, że wiele rzeczy może się zepsuć (więc albo wykonaj kopię zapasową kopii roboczej, albo przygotuj się na ponowne sprawdzenie całego repozytorium, jeśli coś pójdzie nie tak).
Adres repozytorium i jego identyfikator UUID są zapisywane w
.svn/wc.db
pliku bazy danych SQLite w kopii roboczej. Wystarczy otworzyć bazę danych (np. W przeglądarce SQLite), przejrzeć tabelę REPOSITORY i zmienić wartości kolumnroot
iuuid
na nowe. Identyfikator UUID nowego repozytorium można znaleźć, wydającsvn info NEW_SERVER
.Ponownie potraktuj to jako metodę ostateczności.
źródło
Jeśli chcesz zatwierdzić nowe puste repozytorium, możesz pobrać nowe puste repozytorium i zatwierdzić nowe zdalne repozytorium.
sprawdź nowe puste repozytorium nie usunie twoich plików lokalnych.
spróbuj tego: na przykład adres URL zdalnego repozytorium: https://example.com/SVNTest
cd [YOUR PROJECT PATH] rm -rf .svn svn co https://example.com/SVNTest ../[YOUR PROJECT DIR NAME] svn add ./* svn ci -m"changed repo url"
źródło