0712-2888027 189-8648-0214
微信公眾號

孝感風信網絡科技有限公司微信公眾號

當前位置:主頁 > 技術支持 > Linux > Linux SVN服務器自動提交數據至Web服務器同步

Linux SVN服務器自動提交數據至Web服務器同步

時間:2017-11-01來源:風信官網 點擊: 893次
在本地開發(fā)的過程中,我們使用TortoiseSVN提交最新的修改數據至SVN服務器,但SVN服務器中的數據需要checkout至Web服務器中,才能使Web服務器中的數據同步SVN,通過手動操作太過麻煩,我們可以利用SVN自帶的hooks機制進行同步,操作過程如下:

導出一份SVN文件到網站目錄

svn co svn://localhost/svn1 /www/web/weixin

svn://localhost/svn1為服務器SVN所在路徑
/www/web/weixin為網站目錄路徑


注意事項1:

每次使用svn co提醒你是否保存密碼,這樣每次都會出現交互提示信息,我們需要去掉。
修改/root/.subversion/server中的相關內容為:

store-passwords = no
store-plaintext-passwords = no

注意事項2:

如遇到UUID不一致錯誤信息,可采用以下解決方法:

svn: Repository UUID '4ecc44b9-f3ad-4d43-b838' doesn't match expected UUID '7699d06a-2fa1-49ae-958b'

解決方案:

具體辦法如下:
1、首先查看項目的所有者的UUID
# svnlook uuid /www/svn1
xxxxxxx

2、更新項目的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權限:

chmod +x post-commit

編輯post-commit文件:

vi post-commit

post-commit文件內容如下:

#!/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 #記錄時間日志信息
chown -R www:www /www/web/weixin #更改網站目錄用戶組及用戶

完成之后,結束svn進程

killall svnserve

重啟SVN服務

svnserve -d -r /www

再使用TortoiseSVN提交新的修改,SVN和Web服務器中的數據都同步成功。
欄目列表
推薦內容
熱點內容
展開