Windows下SVN伺服器搭建方法整理(apache)

來源:互聯網
上載者:User

本節和大家談談Windows下SVN伺服器搭建問題,在這裡拿出來和大家分享一下,希望對大家有用。

1,軟體下載

Windows下SVN伺服器搭建,下載Subversion伺服器程式。到官方網站的下載二進位安裝檔案,來到二進位包下載部分,找到WindowsNT,2000,XPand2003部分,然後選擇"thisdirectory",這樣我們可以看到許多下載的內容,目前可以下載svn-1.4.0-setup.exe。下載Subversion的Windows用戶端TortoiseSVN。TortoiseSVN是擴充WindowsShell的一套工具,可以看作Windows資源管理員的外掛程式,安裝之後Windows就可以識別Subversion的工作目錄。官方網站是TortoiseSVN,下載方式和前面的svn伺服器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩定版本的安裝檔案為TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi。

2,伺服器和用戶端安裝

Windows下SVN伺服器搭建中,伺服器安裝,直接運行svn-1.4.0-setup.exe,根據提示安裝即可,這樣我們就有了一套伺服器可以啟動並執行環境。安裝TortoiseSVN,同樣直接運行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按照提示安裝即可,不過最後完成後會提示是否重啟,其實重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這裡為了立刻看到好的效果,還是重新啟動機器。

3,建立版本庫(Repository)

運行Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放資料的資料庫,在安裝了Subversion伺服器之後,可以直接運行,如:svnadmincreateE:\svndemo\repository就會在目錄E:\svndemo\repository下建立一個版本庫。我們也可以使用TortoiseSVN圖形化的完成這一步:在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->CreateRepositoryhere...“,然後可以選擇版本庫模式,這裡使用預設即可,然後就建立了一系列目錄和檔案。

4,配置使用者和許可權

Windows下SVN伺服器搭建,來到E:\svndemo\repository\conf目錄,修改svnserve.conf: 複製代碼 代碼如下:#[general]
#password-db=passwd
改為:
[general]
password-db=passwd然後修改同目錄的passwd檔案,去掉下面三行的注釋:
#[users]
#harry=harryssecret
#sally=sallyssecret
最後變成:
[users]
harry=harryssecret
sally=sallyssecret

5,運行獨立伺服器

在任意目錄下運行:svnserve-d-rE:\svndemo\repository我們的伺服器程式就已經啟動了。注意不要關閉命令列視窗,關閉視窗也會把svnserve停止。
在windows服務裡運行:sccreatesvnservicebinPath="D:\ProgramFiles\Subversion\bin\svnserve.exe--service-rE:\SVN"DisplayName="SvnService"depend=Tcpipstart=auto

6,初始化匯入

Windows下SVN伺服器搭建,來到我們想要匯入的項目根目錄,在這個例子裡是E:\svndemo\initproject,目錄下有一個readme.txt檔案:右鍵->TortoiseSVN->Import...
URLofrepository輸入“svn://localhost/”ok完成之後目錄沒有任何變化,如果沒有報錯,資料就已經全部匯入到了我們剛才定義的版本庫中。
需要注意的是,這一步操作可以完全在另一台安裝了TortoiseSVN的主機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是“svn://133.96.121.22/”。

兩種方法實現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搭建測試伺服器的內容講解完畢,請關注本節其他相關報道。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.