- 資訊首頁(yè) > 網(wǎng)絡(luò )安全 >
- 怎么用SVN鉤子自動(dòng)更新項目
這篇文章主要講解了“怎么用SVN鉤子自動(dòng)更新項目”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“怎么用SVN鉤子自動(dòng)更新項目”吧!
使用post-commit更新
1.SVN 地址:192.168.31.33
2.web服務(wù)器地址:192.168.31.34
3.SVN版本庫地址:/home/svn/qxy
4.web項目地址:/home/wwwroot/qxy
5.由于SVN和web并不在同一服務(wù)器上,所以涉及到ssh登錄,并且需要設置免密鑰登錄
個(gè)人svn同步實(shí)現原理
1.開(kāi)發(fā)人員本地電腦通過(guò)SVN Commit 版本到SVN服務(wù)器上。
2.SVN服務(wù)器post-commit 檢測到有版本變更,根據其中的定義設置通過(guò)ssh 方式登錄到web服務(wù)器執行svn update操作
3.我需要記錄一些信息,所以采用了ssh 登錄后執行特定 腳本進(jìn)行update操作
鉤子位置位于SVN服務(wù)器/home/svn/qxy/hooks 目錄下,默認提供了常用鉤子:
[root@docker_server hooks] ll total 36 -rw-r--r-- 1 root root 1977 Sep 1 16:49 post-commit.tmpl -rw-r--r-- 1 root root 1638 Sep 1 16:49 post-lock.tmpl -rw-r--r-- 1 root root 2289 Sep 1 16:49 post-revprop-change.tmpl -rw-r--r-- 1 root root 1567 Sep 1 16:49 post-unlock.tmpl -rw-r--r-- 1 root root 3426 Sep 1 16:49 pre-commit.tmpl -rw-r--r-- 1 root root 2434 Sep 1 16:49 pre-lock.tmpl -rw-r--r-- 1 root root 2786 Sep 1 16:49 pre-revprop-change.tmpl -rw-r--r-- 1 root root 2122 Sep 1 16:49 pre-unlock.tmpl -rw-r--r-- 1 root root 2780 Sep 1 16:49 start-commit.tmpl
授權SVN服務(wù)器面密鑰登錄到web服務(wù)器
1.在SVN服務(wù)器上生成密鑰文件:
ssh-keygen -t rsa
連續回車(chē)即可,生成的文件位于/root/.ssh/ 下,查看需要ls -a 命令
2.復制密鑰文件到web服務(wù)器上:
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.31.34
該操作需要輸入web服務(wù)器root密碼
3.復制完成后/root/.ssh 下會(huì )生成一個(gè)known_hosts 文件,里面記錄了授權信息(加密的)
編輯post-commit 文件
cp post-commit.tmpl post-commit vim post-commit #!/bin/bash REPOS="$1" REV="$2" LOGFILE=/var/log/svn.log exec 1>>"$LOGFILE" exec 2>&1 export LC_CTYPE="en_US.UTF-8" export LC_ALL= SVNLOOK=/usr/bin/svnlook TIME=$(date "+%Y-%m-%d %H:%M:%S") AUTHOR=$($SVNLOOK author -r $REV "$REPOS") CHANGEDDIRS=$($SVNLOOK dirs-changed $REPOS) MESSAGE=$($SVNLOOK log -r $REV "$REPOS") function myecho() { echo "$TIME" "$*" } myecho "**************************************************************" myecho "提交版本:$REV 作者:$AUTHOR" myecho "提交備注:$MESSAGE" myecho "修改目錄:$(echo $CHANGEDDIRS | tr '\n' ' ')" ssh root@192.168.31.34 "/home/svnup.sh">/dev/null
增加 腳本執行權限
chmod 744 post-commit
web服務(wù)器上新建匹配腳本
vim /home/svnup.sh #!/bin/bash logfile=/var/log/svnup.log echo "-----------------------------------" >>$logfile echo $(date +"%y-%m-%d %H:%M:%S") >>$logfile svn update /home/wwwroot/qxy >>$logfile echo "-----------------------------------" >>$logfile
腳本測試
直接在SVN服務(wù)器上運行鉤子 sh post-commit,如果一切正常,對應的兩個(gè)日志文件中都會(huì )生成日志信息,web服務(wù)器上雖然沒(méi)有版本更新,但是也會(huì )產(chǎn)生更新的記錄
開(kāi)發(fā)電腦推送版本到SVN服務(wù)器測試,如果出現錯誤,會(huì )有post-commit 的相關(guān)提示,一般都是鉤子中
命令問(wèn)題,詳細排錯即可。
這個(gè)方案其實(shí)很累贅,并且需要web服務(wù)器能夠root登錄,另外如果是一個(gè)版本庫下有不同的項目,也無(wú)法進(jìn)行判斷具體更新哪個(gè)項目,接下來(lái)將進(jìn)一步完善。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站