svnsync 兩個svn庫之間的同步
阿新 • • 發佈:2019-01-31
試驗下來,SVNSync除了目標庫為只讀之外,其它功能都很強大,實現也相對簡單。
http://www.svn8.com/svnsy/20090624/6785.html
如用svnsync 同步備份linux 下svn版本庫到Windows
要同步的專案名稱:MU
svn版本庫1。4以上
源目錄:svn://192.168.1.196/mu
目標目錄:svn://192.168.1.205/mu
方法:
1.如果目標目錄存在相同的專案,請先清除,重新建立空專案
svnadmin create mu
2.在mu目錄下hooks目錄下,建立
pre_revprop-change.bat 全部內容只有一行:exit 0
如果用拷貝同目錄下的pre_revprop-change.tmpl 則必須刪除最後三行的內容或替換為只有一行:exit 0
不然下面初始化同步的時候,將停頓
3. 執行 初始化
svnsync init svn://192.168.1.205/mu svn://192.168.1.196/mu
即svnsync init 目標庫 源庫
將向你詢問登入目標庫和源庫的使用者名稱和密碼,建議為兩個庫設定相同的使用者名稱及相同的密碼
正確後,顯示
Copied properties for revision 0.
4.執行同步
svnsync sync svn://192.168.1.205/mu
即svnsync sync 目標庫
正確執行後,顯示
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.
Committed revision 4.
Copied properties for revision 4.
Committed revision 5.
Copied properties for revision 5.
Committed revision 6.
Copied properties for revision 6.
Committed revision 7.
Copied properties for revision 7.
Committed revision 8.
...
5.更新同步
在源庫的hooks下面,新增post-commit 指令碼
可拷貝post-commit.tmpl
即
cp post-commit.tmpl post-commit
然後
把 post-commit 中,最後兩行替換為
svnsync sync --non-interactive svn://192.168.1.205/mu --sync-username user --sync-password user
即提交更新後,即執行同步命令,不進行互動
把post-commit 設為755許可權。
ps:
如果post-commit指令碼出錯,或者無可執行許可權,在提交更新時會報錯