1.軟件環(huán)境

image.png
2.注意
備庫(kù)不能執(zhí)行提交操作,否則主庫(kù)會(huì)同步失敗
2.1.在(svn-slave)上操作(備庫(kù))
2.1.1.備份配置文件
cd /Repositories/conf
cp authz authz.bak
cp passwd passwd.bak
2.1.2.創(chuàng)建備份用戶
htpasswd -c /Repositories/conf/passwd syncuser
密碼:****
2.1.3.創(chuàng)建備份倉(cāng)庫(kù)
svnadmin create /Repositories/back
2.1.4.為備份用戶添加權(quán)限
vi /Repositories/conf/authz
添加
[back:/]
syncuser = rw
2.1.5.添加鉤子
cd /Repositories/back/hooks
2.1.5.1.pre-revprop-change
vi pre-revprop-change
#!/bin/sh
USER="$3"
# 限制只有syncuser用戶才能提交版本屬性修改到此版本庫(kù)
if [ "$USER" = "syncuser" ]; then exit 0; fi
echo "Only the syncuser user may change revision properties" >&2
exit 1
2.1.5.2.start-commit
vi start-commit
#!/bin/sh
USER="$2"
# 限制只用syncuser用戶才能提交版本修改到版本庫(kù)
if [ "$USER" = "syncuser" ]; then exit 0; fi
echo "Only the syncuser user may commit new revisions" >&2
exit 1
2.1.5.3.為鉤子添加權(quán)限
chmod 775 start-commit pre-revprop-change
2.2.進(jìn)行同步在svn-master服務(wù)器操作(主庫(kù))
2.2.1.初始化備份庫(kù)
svnsync init http://svn-slave/svn/back/ file:///Repositories/test --username syncuser --password '****'

image.png
2.2.2.同步備份庫(kù)
svnsync sync http://svn-slave/svn/back/ --username syncuser --password '****'
2.2.3.添加鉤子實(shí)現(xiàn)自動(dòng)同步(自動(dòng)提交)
cd /Repositories/test/hooks/
vi post-commit
#!/bin/sh
/usr/local/subversion/bin/svnsync synchronize --non-interactive http://svn-slave/svn/back/ --username syncuser --password '*****'
chown svn.svn post-commit
chmod 775 post-commit
3.測(cè)試提交是否同步
在主庫(kù)上執(zhí)行提交操作,看備庫(kù)是否同步