在本地開(kāi)發(fā)的過(guò)程中,我們使用TortoiseSVN提交最新的修改數(shù)據(jù)至SVN服務(wù)器,但SVN服務(wù)器中的數(shù)據(jù)需要checkout至Web服務(wù)器中,才能使Web服務(wù)器中的數(shù)據(jù)同步SVN,通過(guò)手動(dòng)操作太過(guò)麻煩,我們可以利用SVN自帶的hooks機(jī)制進(jìn)行同步,操作過(guò)程如下:
導(dǎo)出一份SVN文件到網(wǎng)站目錄
svn co svn://localhost/svn1 /www/web/weixin
svn://localhost/svn1為服務(wù)器SVN所在路徑
/www/web/weixin為網(wǎng)站目錄路徑
注意事項(xiàng)1:
每次使用svn co提醒你是否保存密碼,這樣每次都會(huì)出現(xiàn)交互提示信息,我們需要去掉。
修改/root/.subversion/server中的相關(guān)內(nèi)容為:
store-passwords = no
store-plaintext-passwords = no
注意事項(xiàng)2:
如遇到UUID不一致錯(cuò)誤信息,可采用以下解決方法:
svn: Repository UUID '4ecc44b9-f3ad-4d43-b838' doesn't match expected UUID '7699d06a-2fa1-49ae-958b'
解決方案:
具體辦法如下:
1、首先查看項(xiàng)目的所有者的UUID
# svnlook uuid /www/svn1
xxxxxxx
2、更新項(xiàng)目的UUID
# svnadmin setuuid /www/svn1 xxxxxxx
3、查看一下更新后的UUID
# svnlook uuid /www/svn1
修改SVN中post-commit.tmpl文件
cd /www/svn1/hooks
mv post-commit.tmpl post-commit
更改post-commit權(quán)限:
chmod +x post-commit
編輯post-commit文件:
vi post-commit
post-commit文件內(nèi)容如下:
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8 #防止亂碼
svn update /www/web/weixin #更新svn
echo `date`,`whoami`,$REPOS,$REV >> //www/svn1/hooks/svn_hook.log #記錄時(shí)間日志信息
chown -R www:www /www/web/weixin #更改網(wǎng)站目錄用戶(hù)組及用戶(hù)
完成之后,結(jié)束svn進(jìn)程
killall svnserve
重啟SVN服務(wù)
svnserve -d -r /www
再使用TortoiseSVN提交新的修改,SVN和Web服務(wù)器中的數(shù)據(jù)都同步成功。
導(dǎo)出一份SVN文件到網(wǎng)站目錄
svn co svn://localhost/svn1 /www/web/weixin
svn://localhost/svn1為服務(wù)器SVN所在路徑
/www/web/weixin為網(wǎng)站目錄路徑
注意事項(xiàng)1:
每次使用svn co提醒你是否保存密碼,這樣每次都會(huì)出現(xiàn)交互提示信息,我們需要去掉。
修改/root/.subversion/server中的相關(guān)內(nèi)容為:
store-passwords = no
store-plaintext-passwords = no
注意事項(xiàng)2:
如遇到UUID不一致錯(cuò)誤信息,可采用以下解決方法:
svn: Repository UUID '4ecc44b9-f3ad-4d43-b838' doesn't match expected UUID '7699d06a-2fa1-49ae-958b'
解決方案:
具體辦法如下:
1、首先查看項(xiàng)目的所有者的UUID
# svnlook uuid /www/svn1
xxxxxxx
2、更新項(xiàng)目的UUID
# svnadmin setuuid /www/svn1 xxxxxxx
3、查看一下更新后的UUID
# svnlook uuid /www/svn1
修改SVN中post-commit.tmpl文件
cd /www/svn1/hooks
mv post-commit.tmpl post-commit
更改post-commit權(quán)限:
chmod +x post-commit
編輯post-commit文件:
vi post-commit
post-commit文件內(nèi)容如下:
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8 #防止亂碼
svn update /www/web/weixin #更新svn
echo `date`,`whoami`,$REPOS,$REV >> //www/svn1/hooks/svn_hook.log #記錄時(shí)間日志信息
chown -R www:www /www/web/weixin #更改網(wǎng)站目錄用戶(hù)組及用戶(hù)
完成之后,結(jié)束svn進(jìn)程
killall svnserve
重啟SVN服務(wù)
svnserve -d -r /www
再使用TortoiseSVN提交新的修改,SVN和Web服務(wù)器中的數(shù)據(jù)都同步成功。