在svn中,利用svnsync命令可以對某個代碼倉庫進行備份.這裏主要簡介怎麼使用svnsync進行倉庫備份以及一些需要注意的地方.
下面將詳細說明一下是怎麼進行備份的.(測試平臺是linux 2.6.x + svn 1.6.x),對於win平臺將是類似的做法.
這裏的備份是完全複製一個遠程倉庫.
1: 使用svnadmin倉庫一人本地的空的倉庫.
$svnadmin create ~/svn-storage-bak
2: 修改這個新的倉庫的相關腳本
2.0 進入svn-storage-bak這個倉庫的根目錄中:~/svn-storage-bak
2.1:複製hooks/pre-revprop-change.tmpl爲hooks/pre-revprop-change
2.2:給上面這個腳本加上執行權限.
#chmod u+x hooks/pre-revprop-change
2.3:編輯上面腳本,添加如下命令,使得每一行非註釋指令是exit 0
{{{
exit 0
}}}
然後就是保存啦.
3: 使用svnsync設置新的倉庫同步指向目標倉庫
$svnsync init file:////home/usrname/svn-storage-bak 目標倉庫的url
4: 進行同步了.
$svnsync sync file:///home/usrname/svn-storage-bak
5: 這個時候將看到標準輸出一些備份信息.
好了,上面演示了怎麼備份一個已有數據的版本倉庫,下面將討論這過程中的相關注意地方..
=注意=
存儲目標倉庫的備份的svn倉庫要是一個空的倉庫,否則將有如下提示.
svnsync: Cannot initialize a repository with content in it
=參考資料=
http://nowing.iteye.com/blog/844608