Jak przenieść repozytorium subversion na inny serwer?

Byłem zaniepokojony wizją przenoszenia repozytorium subversion na inny serwer, ale szybkie google i cała migracja okazała się wręcz trywialna i składała się z następujących kroków.

Zrzut danych z repozytorium

Pierwsze co trzeba zrobić to zrzucić dane ze starego repozytorium:
svnadmin dump /ścieżka/do/repozytorium > repozytorium.svn_dump
Tak wykonany dump zawiera wszystkie rewizje wykonane w czasie istnienia repozytorium i z tego powodu może być dość duży, między innymi dlatego, że zawiera rzeczy które istniały w repo, a potem zostały skasowane. (u mnie miał prawie 3 giga).

Utworzenie nowego repozytorium

Na początek należy utworzyć puste repozytorium na nowym serwerze:
svnadmin create /ścieżka/do/repozytorium

Importowanie danych

Następnie importujemy dane na nowym serwerze:
svnadmin load /ścieżka/do/repozytorium < repozytorium.svn_dump
Jeżeli chcemy zmusić subversion do zachowania UUID'ów ze starego repozytorium należy dp "load" dodać opcję "--force-uuid".

FAQ

Co zrobić jeżeli w czasie przenoszenia pojawiły się nowe rewizje?
Należy wtedy dokonać zrzutu od nowej wersji:
svnadmin dump --incremental -r 1234 /ścieżka/do/repozytorium > repozytorium.1234.svn_dump
a potem zaimportować:
svnadmin load /ścieżka/do/repozytorium < repozytorium.1234.svn_dump
Czy nie można użyć po prostu polecenia hotcopy?
Niestety użycie tej opcji jest mocno ograniczone, z powodu konieczności zachowania dokładnie takiej samej konfiguracji i to nie tylko jeśli chodzi o wersję subversion, ale i ten sam system operacyjny. (operacja opisana powyżej zadziała również przy przenoszeniu z windows na linuxa).

Wpis oryginalny: Moving a Subversion Repository to Another Server