做爲團隊開發項目時,會遇到項目的版本管理,測試部署與發佈部署,下面是摘至他人的關於版本管理和自動部署的方案。html
svn自動部署的實現:web
使用svn的hook功能apache
一、在版本庫的hooks目錄下面,有一些基於事件觸發的執行腳本,好比post-commit, 去掉後綴.tmpl
二、編輯svn代碼庫服務器上文件: svn/test/hooks/post-commit 服務器
#!/bin/sh REPOS="$1" REV="$2" export PATH="/usr/local/svn/bin:$PATH" #因爲代碼是apache的進程用戶www運行,因此須要設置環境變量 export LC_CTYPE=en_US.UTF-8 #防止提交的文件名存在非字母字符。 if (svnlook log -r $REV /home/http/repository/svn/test | grep "auto_deploy" ) #當用戶提交時註釋中寫上"auto_deploy"的時候,就自動部署到apache目錄,不然不部署。 then echo "`date` 'auto depoly command received" >> /tmp/test_svnautocommit.txt #這一行僅做調試使用 svn export "http://192.168.16.48/repo/svn/test/trunk/test_website" /home/http/html/test_website --force fi
三、 在客戶端測試,而且要在comment中加入 auto_deploy,不然不會觸發自動部署的操做svn
參考:post
[1] SVN本地開發、測試環境版本控制-自動發佈生產環境[2014-10-08].http://www.open-open.com/lib/view/open1376871583553.html測試