Możesz wykorzystać ftp, o ile oczywiście jego obsługa z poziomu php jest włączona.
Tutaj masz klasę która obsługuje operację na folderach (i nie tylko) z wykorzystaniem protokołu ftp. Interesuje Ciebie metoda CopyFolder i 5 pierwszych parametrów (chyba że masz pliki svn w katalogach

). Pierwsze dwa masz jako tako opisane, w $ftp_connect podajesz uchwyt do połączenia ftp (
ftp_connect), w ftp_path podajesz bezwzględną ścieżkę do katalogu głównego (o ile oczywiście w dwóch pierwszych atrybutach funkcji (tj. $path i $destination) będziesz podawał ścieżkę zaczynającą się właśnie od katalogu głównego. W $force_ftp podajesz true jako że chcesz wymusić uzycie protokołu ftp (w innym przypadku metoda skopiowałaby zawartość katalogu z wykorzystaniem normalnych funkcji).
Przykład użycia zakładając że chcemy skopiować zawartość katalogu test/moj_katalog/ do test/drugi_katalog/ gdzie ścieżka bezwzględna do katalogu głównego to /home/myusr/htdocs/projekt/
Folders::CopyFolder('test/moj_katalog/', 'test/drugi_katalog/', $ftp_handler, '/home/myusr/htdocs/projekt/', true);
PS: Klasę pisałem za półtorej roku temu i praktycznie nie używałem w trybie ftp ale powinna działać bez problemu