文章出處

如用svnsync 同步備份兩臺機器的svn 。(就以linux服務器到windows服務器為例子)

要同步的項目名稱:source_svn

svn 版本庫1 。4 以上
源目錄:            svn://192.168.16.199/source_svn
同步目標目錄:      http:// 目標IP:8080/source_svnbak

 

方法:

1.如果目標目錄存在相同的項目,請先清除,重新建立空項目

2.在目標服務器中建立svn版本庫source_svnbak svnadmin create source_svnbak  (svnadmin是svn的命令如果沒有將svn目錄放到環境變量需要在其目錄里面使用該句若是windows可以直接點擊右鍵創建svn)

3.需要在hooks中將pre_revprop_change.tmpl改為pre_revprop_change.bat并將內容清空然后輸入exit 0

4.執行初始化 

  svnsync init svn://目標:ip:端口號/source_svnbak svn://192.168.16.199/source_svn

  (執行到這一般會出現一個問題 svnsync: 認證失敗)解決:需要把源文件source_svn中的conf拷貝到目標source_svnbak中替換conf文件

  如果成功他會提示你輸入用戶名和密碼(注:第一個是Administrator這個我覺得不用管隨便輸入,確定后才是你svn中填寫的用戶名和密碼在conf中的文件有配置)

 

正確后,顯示

Copied properties for revision 0.(復制版本 0 的屬性。)

5

執行同步

svnsync sync svn://目標ip和端口號/source_svnbak --username xxxx  --password xxxx(一般端口號不用寫除非端口號不是默認安裝過的需要寫,用戶名和密碼都在conf中有配置)

即svnsync sync 目標庫

正確執行后,顯示

復制版本號和提交數據等信息

 

6.更新同步

在source_svn的hooks下面,添加post-commit 腳本

可拷貝post-commit.tmpl


 

cp post-commit.tmpl post-commit

然后

把 post-commit 中,最后兩行替換為
 

svnsync sync  --non-interactive svn://目標ip:(端口號)/source_svnbak --username xxx --password xxx

即提交更新后,即執行同步命令,不進行交互

把post-commit 設為755權限。

 

ps:

如果post-commit腳本出錯,或者無可執行權限,在提交更新時會報錯

錯誤處理 
在源端 , 同步用的帳號需要有讀權限 , 在目的端同步帳號需要讀寫權限 . 權限分配合理后 , 基本上就不會出現其他錯誤 

如果出現以下列出的之外的錯誤 , 請先檢查一下 svn 服務是否可正常使用 
比較常見的錯誤是 :
# svnsync initialize DEST_URI SRC_URI --username cax  --password password_for_cax
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; repository is unchanged

這是由于系統中沒有 pre-revprop-change 鉤子腳本導致的 , 該文件在版本庫的 ~/hooks/ 下 , 只需拷貝一份即可 .
cp -pf hooks/pre-revprop-change.tmpl hooks/pre-revprop-change

如果是 windows 系統 , 還需要清空 pre-revprop-change 的內容 , 并添加后綴為 pre-revprop-change.bat
在批處理文件中 , Linux 下 shell 中注釋符 #   不能被 batch 正確解釋也會重復出現該錯誤 .

來源:http://blog.csdn.net/stuartjing/article/details/6796763


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()