svnsync能夠方便的把另外一個源svn版本同步到指定版本庫中,爲多版本庫應用提供方便。php
示例: (版本庫所存目錄 /svn/ 下)
web
源版本庫: svn://196.168.0.1/testA 同步用戶:sync_source 密碼:123456
vim
目標版本庫: svn://196.168.0.2/testB 同步用戶:sync 密碼:123456
bash
源版本庫用於開發編輯提交等應用,目標版本庫只能可讀用於上線備份等應用。服務器
進入目標服務器:ide
編輯sync同步必要hooks腳本pre-revprop-change,(進入版本庫hooks目錄)
svn
1
|
cp
pre-revprop-change.tmpl pre-revprop-change
|
修改權限,容許執行
post
1
|
chmod
a+x pre-revprop-change
|
編輯(註釋全部可用代碼)測試
1
|
vi
pre-revprop-change
|
追加以下代碼(註釋代碼爲同步過來能自動更新到站點中,若是沒有站點可去掉)spa
1
2
|
#svn up /www/testB/ --username=sync --password=123456
exit
0
|
同步配置初始化
1
|
svnsync init
file
///svn/testB
svn:
//196
.168.0.1
/testA
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache
|
執行同步
1
|
svnsync
sync
svn:
//196
.168.0.1
/testA
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache
|
進入源服務器:
編輯提交使用的post-commit腳本(進入版本庫hooks目錄)
1
|
vim post-commit
|
最後面追加內容 (每次提交過來自動同步)
1
|
svnsync
sync
svn:
//196
.168.0.2
/testB
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache
|
注意,在提交勾子中使用直接命令會影響提交速度,能夠使用
1
|
(svnsync
sync
svn:
//196
.168.0.2
/testB
--
source
-username sync_source --
source
-password 123456 --
sync
-username
sync
--
sync
-password 123456 --no-auth-cache &)
|
如今能夠測試提交下文件,而後查看兩個版本庫是否同步。
本文出自 「秋風掃落葉」 博客,請務必保留此出處http://php2012web.blog.51cto.com/5585213/1852311