兩種方法實現SVN搭建測試服務器
本節和大家學習一下如何利用SVN搭建測試服務器,常用的有兩種方法,這里就向大家簡單介紹一下,歡迎大家能和我一起學習SVN搭建測試服務器的方法。
在正規的團隊開發流程中,測試服務器測試是必不可少的一個環節,如何簡單快捷的部署測試服務器將是本文的重點。本文的實際環境是CentOS+PHP+MySQL+SVN,將通過兩種不同的途徑來實現部署測試服務器的最終目的。我們來看一下SVN搭建測試服務器的***種方法。
***種,post-commit
post-commit本身是SVN系列鉤子中的一個,是為了更方便對SVN使用中的常見操作進行處理,建立測試服務器的步驟如下
在hooks目錄,創建post-commit文件,并將其內容定義為類似如下
#!/bin/sh
exportLANG=en_US.UTF-8
svncheckout--usernamekimi--passwordpasswordsvn://10.0.0.8/projects//wwwroot/projects.ismole.net
chownwww:www/wwwroot/projects.ismole.net-Rf
說明:
1.#!/bin/sh說明是執行shell命令
2.exportLANG=en_US.UTF-8是為了解決svnpostcommit中文亂碼,設置本地化編碼。不過SVN默認是UTF-8編碼。如果字符集符合并且不設置將會出現錯誤,而執行不成功,錯誤標識為svn:Can’tconvertstringfromnativeencodingto‘UTF-8′
3.svncheckout–usernamekimi–passwordpasswordsvn://10.0.0.8/projects//wwwroot/projects.ismole.net執行SVN檢出操作
4.chownwww:www/wwwroot/projects.ismole.net-Rf更改文件夾屬主為適合WebServer的。
里面原有的代碼全部注釋掉.這里可以執行shell命令,每次commit完成后都會調用此文件。我們來看一下SVN搭建測試服務器的第二種方法介紹。
第二種,PHP檢出SVN
<?php
header("Cache-Control:no-cache,must-revalidate");
$handle=popen('svncheckout--usernamekimi--passwordpasswordsvn://10.0.0.8/projects//wwwroot/projects.ismole.net','r');
$read=stream_get_contents($handle);
echo"<pre>";
printf($read);
echo"</pre>"
pclose($handle);
?>
其實這種方式只是利用PHP來執行linux命令,不過多描述。參考《PHP監控linux服務器負載》:http://www.ccvita.com/390.html
綜合以上兩種方式,其目的都是通過將SVN檢出,并放置在相應的web目錄下來實現的。這兩種相互比較而言,post-commit更為簡單快捷,無需更多的操作,但是對權限控制力度很小,只要有SVN的提交權限就有部署測試服務器的權限;PHP方式相比麻煩一些,但是對用戶權限的控制可以專門定制相應的程序來實現,幾乎可以實現任何角色對權限的控制。
在實際的使用過程中,我們目前對應用的APP調試以及合作性質的研發采用***種方式;如果對SVN需要比較多權限控制的話,推薦采用第二種,可以囊括測試,部署,上線等各個環節。在和新浪的一個合作中,采用這種異地開發方式。本節關于SVN搭建測試服務器的內容講解完畢,請關注本節其他相關報道。
【編輯推薦】