Subversionのバックアップ

サブバージョンのレポジトリは、サーバーにありますが、

定期的にバックアップする必要があります。

そこで、以下の様なバッチファイルを作成してみました。

Windowsのバッチファイルです。

このバッチファイルでは、コミットされたレポジトリは

毎回全てバックアップします。

 

下記が、バッチファイルの記述です。

 

for /f “delims=” %%a in (rep_list.txt) do (    レポジトリリストのファイルを

一行ずつ読み出して処理を行う

set PRODUCT=%%a

set REP=https://???????/svn/%%a

call :make

)

 

echo on

pause

exit

 

:make    これから繰り返し処理の開始 一つずつリポジトリをバックアップ

svn info %REP% | grep “Last Changed Rev” | grep -o “[0-9]*” > rev.txt リビジョンを調査

set /p REV=<rev.txt

if %REV%==”” goto updateErr

if EXIST %PRODUCT%_%REV%_dump.zip goto noupdate  バックアップ済みの場合は、

処理無し

echo Making %PRODUCT%

svnrdump dump -q %REP% > %PRODUCT%_%REV%.dump バックアップ(ダンプファイル)

 

if ERRORLEVEL 1 goto updateErr

 

7z a %PRODUCT%_%REV%_dump.zip %PRODUCT%_%REV%.dump ダンプファイルを

圧縮

del %PRODUCT%_%REV%.dump             ダンプファイルを削除

echo Update end %PRODUCT%              バックアップ終了

exit /b

:noupdate

echo No Update %PRODUCT%      既にバックアップされている

exit /b

:updateErr

echo Update Error %PRODUCT%     バックアップエラー

exit /b