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?

Author: Peter Mortensen, 2008-12-11

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.

 58
Author: petr k.,
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:

 27
Author: alexandrul,
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.

 9
Author: Sander Rijken,
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."

 5
Author: JRun,
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".

 4
Author: NerdFury,
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
 1
Author: orezvani,
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