Przenoszenie repozytorium Subversion na inny serwer
Mam serwer, który hostuje moją bazę kodu Subversion. Ten serwer jest obecnie skrzynką Windows Server 2003, a mój administrator IT chce zaktualizować go do Windows Server 2008 .
Oznacza to, że będę musiał przenieść moje repozytorium Subversion, podczas gdy serwer zostanie zbudowany i zastanawiałem się, jakie są najlepsze praktyki przenoszenia repozytorium na nowy serwer.
Wygląda na to, że patrząc w Internecie, zalecanym sposobem jest użycie:
svnadmin dump /path/to/repository > repository-name.dmp
I wtedy użycie:
svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp
Aby zaimportować repozytorium.
Czy powyższa metoda wydaje się najlepszym podejściem?
6 answers
Tak, dumping i ładowanie repozytorium to droga do zrobienia. Kopiowanie folderu repozytorium bezpośrednio jest realną opcją wtedy i tylko wtedy, gdy jesteś pewien, że nikt nie będzie miał dostępu do repozytorium podczas procesu kopiowania (lub możesz zrobić "gorącą kopię" repozytorium, która może obsłużyć te przypadki w bezpieczny sposób).
Będziesz także musiał ponownie sprawdzić wszystkie kopie robocze lub użyć polecenia svn switch , które tylko przepisuje adresy URL. Wygodniejszym sposobem jest aby użyć komendy Relocate TortoiseSVN, która zmniejsza ryzyko popełnienia błędu podczas procesu relokacji.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-18 20:57:44
Moje Skrypty przywracania są takie:
svnadmin create repository-name --fs-type fsfs
svnadmin load repository-name --force-uuid < repository-name.dmp
Pierwsza linia zapewnia, że repozytorium używa backendu FSFS
(co jest zalecane przez wiele źródeł, w tym ten: Jak FSFS jest lepszy, a nowsze wersje Subversion używają go jako domyślnego). FSFS to nazwa implementacji systemu plików Subversion.
Druga linia przechowuje UUID repozytorium, dla łatwiejszego przejścia (bez przełącznika --force-uuid
, Przeniesienie kopii roboczej będzie fail).
Niektóre linki:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-18 21:08:00
Możesz również użyć svnsync do przeniesienia repozytorium; w ten sposób możesz przesłać wszystkie dane bez konieczności usuwania 'starego' repozytorium. Jest to również jedyny sposób, jaki znam, aby uzyskać dane z hostowanych środowisk, w których nie masz dostępu do powłoki lub dostępu do wyrzucania repozytorium.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-12 12:31:11
Inna alternatywa:
Użyj svnrdump. http://www.crowbarsolutions.com/backing-up-restoring-a-remote-svn-repository/
" będziesz potrzebował narzędzia o nazwie svnrdump. Jak opisuje Apache, "svnrdump replikuje funkcjonalność svnadmin dump i svnadmin load, ale działa na zdalnych repozytoriach, zamiast wymagać dostępu administratora (lokalnego systemu plików) do repozytorium źródłowego lub docelowego."
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-27 07:48:19
Jeśli używasz repozytorium typu system plików, możesz dosłownie wziąć folder zawierający Twoje repozytorium i przenieść go. Jeśli zmieniasz serwery, prawdopodobnie będziesz musiał zmienić lokalizację, w której twój lokalny katalog roboczy szuka repozytorium, używając polecenia "Relocate".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-12-11 20:37:47
Najprostszym sposobem jest użycie:
svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-16 06:35:39