作為團隊開發項目時,會遇到項目的版本管理,測試部署與發布部署,下面是摘至他人的關於版本管理和自動部署的方案。

svn自動部署的實現:
使用svn的hook功能
1、在版本庫的hooks目錄下面,有一些基於事件觸發的執行腳本,比如post-commit, 去掉后綴.tmpl
2、編輯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
3、 在客戶端測試,並且要在comment中加入 auto_deploy,否則不會觸發自動部署的操作
參考:
[1] SVN本地開發、測試環境版本控制-自動發布生產環境[2014-10-08].http://www.open-open.com/lib/view/open1376871583553.html
