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
: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