2012-04-03

svnsync

Polecenia tego użyjemy do wykonania kopii zdalnego repozytorium do lokalnego katalogu. Wszystko pod systemem Windows.

Do wykonania operacji musimy mieć dostęp z wiersza poleceń do podstawowych poleceń SVN.

Tworzymy lokalne repozytorium:

svnadmin create winuae-google-svn

W pliku svnserve.conf ustawiamy dostęp anonimowy do zapisu i odczytu.

anon-access = read
auth-access = write


Wykonujemy inicjalizację synchronizacji:

svnsync init "file:///D:/Programowanie/C++/winuae-google-svn" https://winuae-mod.googlecode.com/svn/

I otrzymujemy informację o błędzie:

svnsync: E165006: Repozytorium nie ma włączonej możliwości zmieniania atrybutów wersji;
poproś administratora o utworzenie skryptu hook pre-revprop-change


Tworzymy pusty plik winuae-google-svn\hooks\pre-revprop-change.bat

Ponawiamy polecenie. Teraz powinno być wszystko w porządku.

Teraz czas na właściwą synchronizację:

svnsync sync "file:///D:/Programowanie/C++/winuae-google-svn" https://winuae-mod.googlecode.com/svn/

Kiedy przerwiemy proces synchronizacji, repozytorium może zostać pozostawione w stanie zablokowania. Musimy usunąć z niego pozostawioną właściwość:

svn pdel --revprop -r 0 svn:sync-lock "file:///D:/Programowanie/C++/winuae-google-svn"

Kompletny skrypt wznawiający synchronizację w pętli aż do skutku:

goto RECOVER

:LOOP

svnsync sync "file:///D:/Programowanie/C++/Moje programy/winuae-google-svn" https://winuae-mod.googlecode.com/svn/

echo errorlevel %ERRORLEVEL%

if not %ERRORLEVEL% == 0 goto RECOVER

goto FINAL

:RECOVER

svn pdel --revprop -r 0 svn:sync-lock "file:///D:/Programowanie/C++/Moje programy/winuae-google-svn"

goto LOOP

:FINAL

echo FINISHED
pause

Brak komentarzy:

Prześlij komentarz