Subversion for Windows 安裝指南(繁体)[1]

原文:  http://www.sawin.cn/doc/QM/SCM/lycoo10.htm

摘要:
版本控制在軟體工程的領域中隸屬於軟體建構管理(ConfigurationManagement)的範疇,是軟體開發流程當中相當基本且重要的一環,因此版本控制系統可說是開發人員必備的工具之一。本文將介紹一個開放原始碼的版本控制系統:Subversion,說明相關工具的安裝步驟,並且透過實例操作示範如何在VisualStudio .NET 2003裡面對專案進行版本管理。

Subversion 是一個自由/開放源碼的版本控制系統,也就是說Subversion 管理著隨時間改變的檔案,這些檔案放置在一個中央檔案庫(repository)中,這個檔案庫,很像一個尋常的檔案伺服器,不過它會記住每一次檔案的變動。這樣你就可以把檔案回復到舊的版本,或是瀏覽檔案的變動歷程,許多人會把版本控制系統想像成某種“時光機器”。


目的:

  • 在 Windows2003 Server 上安裝及設定Subversion,以便於團隊成員透過 Internet協同開發軟體專案,並有版本控管功能。
  • 在用戶端安裝 Subversion 的 Client-side工具:TortoiseSVN,可以整合與檔案總管整合在一起,利用 GUI方式提供了建立檔案庫、以及匯入、匯出等功能。

本文提供一個簡易的安裝指南,說明在 Windows 環境下安裝 Subversion伺服器的步驟,以及 TortoiseSVN 用戶端工具的安裝步驟。

1. 簡介

Subversion 是一個版本控制系統,它是根據 CVS(Concurrent VersionsSystem)的功能為基礎來設計,但是改進了一些 CVS 的缺點,例如:在 CVS中搬移檔案目錄很不方便,Subverion則連目錄的異動都納入版本管理;此外,它也增加了其他的功能,例如:不可分割的送交(如同資料庫交易的概念,送交多個檔案時,若有任何一個檔案失敗,則這次送交的所有檔案都不會進入檔案庫中)、支援多種網路協定、一致的檔案差異比對(不管什麼檔案類型,均使用二進位差異比對方式)等等。

由於目前手邊查到的 Subversion 文件,主要都是針對Unix用戶來撰寫,所以這份文件特地針對 Windows環境下安裝 Subversion的步驟來說明,希望透過這份文件,能夠幫助你很快的把Subversion安裝起來。

在安裝過程中,會需要輸入一些命令列的指令,本文不會詳細解釋某些指令的用途和意義,因此你除了要熟悉DOS 的基本指令,還應該隨時查閱 Subversion 的電子書(有中文版),以了解 Subverion命令列工具的使用方法。圖形化介面雖然方便,但是熟悉命令列工具的使用,才能讓你得到完全的自由。

1.1 閱讀基本觀念

如果你缺乏版本控制系統的基本觀念,就算能夠順利安裝好Subversion,可能安裝完成後就不知道下一步怎麼做了。這裡只簡單的提一點必要的基礎觀念,記住你最終還是得閱讀Subversion 的官方文件。

1.2 作業環境與軟體版本

以下是本文件使用的作業環境與軟體版本:

  • Windows 2003 Server with SP1
  • Apache HTTP Server v2.0.55
  • Subversion v1.2.3
  • TortoiseSVN 1.2.6 build 4786

2. 安裝與建立 Subversion 伺服器

本節介紹安裝 Subversion 所需的步驟,請準備一台穩定的機器,作為Subversion 的伺服器。

2.1 安裝 Apache HTTP Server

http://httpd.apache.org 下載 ApacheHTTP Server 2.0 版 for Windows 的安裝程式,我下載的檔案是apache_2.0.50-win32-x86-no_ssl.msi。

下載之後直接安裝,安裝過程很簡單,就不贅述了,但安裝之前請先檢查你的電腦是否有安裝IIS,由於 Apache 預設使用 80 port,會跟 IIS 的網站衝突,你必須把IIS 的 Web 站台關閉,再安裝 Apache HTTP Server。

安裝完成以後,開啟瀏覽器,瀏覽網址 http://localhost看看有沒有出現安裝成功的網頁。

2.2 安裝 Subversion

1.http://subversion.tigris.org/下載最新版的 Subversion,你可以下載 .zip或者打包好的自動安裝程式,我下載的是檔案svn-1.2.3-setup.exe。

2.下載後直接安裝,安裝過程都是下一步,沒什麼特別的。在此Windows安裝版增加了Apachemodules的選項,必要的環境變數都幫你設定好了。
Subversion for Windows 安裝指南(繁体)[1] - zjd9961 - zjd9961的博客

 

2.2.1 手動安裝Apache modules

以下步驟敘述手動安裝Apache modules的程序(如果你下載的是 .zip檔,就要自行設定)。

  1. 把 $SVN_Install/bin/目錄下的 mod_dav_svn.so、mod_authz_svn.so複製到 $Apache2_Install/modules/目錄下。
  2. 把 $SVN_Install/bin/目錄下所有的dll檔複製到$Apache2_Install/bin/。
  3. 接著用文書編輯器開啟 Apache HTTP Server 的 httpd.conf(在/conf/ 目錄下),尋找一堆 LoadModule 指令,先找到以下兩行:
    #LoadModule dav_module modules/mod_dav.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    把前面dav_svn_module的 '#' 字元刪除,然後把下面幾行文字加到這群LoadModule 指令的後面:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_modulemodules/mod_authz_svn.so
  4. 重新啟動 Apache HTTP Server。

問題排除

如果 Apache HTTP Server無法啟動,請依下列步驟檢查:
1. 檢查 Subversion 的路徑是否有在系統的 %PATH% 環境變數裡面。
2. 檢查你加入 httpd.conf 裡的項目是否正確,記住 mod_dav_svn.so 和mod_authz_svn.so 必須在其他 mod_dav*.so 模組之後載入。
3.檢查你加入的檔案。若dll檔沒有在正確位置,將無法正常啟動。

 

2.3 設定 Subversion 檔案庫的路徑

現在要設定Apache http.config檔中 SVN URL路徑與檔案庫實體路徑的對應關係。對應的方式有兩種,分別是 SVNPath 與SVNParentPath。

2.3.1 SVNPath

SVNPath 適合用來個別指定檔案庫的路徑,語法是:

<Location /svn/repos_name>
DAV svn
SVNPath /absolute/path/to/repository
</Location>

其中 "/svn/repos_name" 就是用戶端存取特定檔案庫的 URI(UniformResource Indentifier),SVNPath後面指定的路徑則是檔案庫的絕對路徑,假設我們的檔案庫實際存放的路徑是d:\svn\MyProject,並且希望用戶端使用 http://myserver/svn/myprj 的URL 來存取檔案庫,那麼要加入 httpd.conf 的內容就是:

<Location /svn/myprj>
DAV svn
SVNPath d:\svn\MyProject
</Location>

注意 Location 標籤後面的 /svn/myprj 的第一個斜線不可少!

 

2.3.2 SVNParentPath

如果你的檔案庫都集中放在某個目錄之下,例如:d:\svn,那你就可以使用SVNParentPath 的方式指定檔案庫的根路徑,例如:

<Location /svn>
DAV svn
SVNParentPath d:\svn
</Location>

這表示可以讓任何人都可以透過http://myserver/svn/<檔案庫名稱> 的方式,存取位於 d:\svn這個目錄以下的所有檔案庫。也就是說,這個設定動作只需要一次,如果使用SVNPath,你必須為各個檔案庫分別指定對應的路徑。

以上兩種設定方式都可以,方便起見,這裡我用 SVNParentPath來統一指定所有檔案庫的父層 URL 路徑。

將 的設定加到 Apache HTTP Server 的 httpd.conf檔尾就行了。接著便可以開始建立檔案庫。

2.4 建立Subversion檔案庫

假設我們要把所有的檔案庫都放在 d:\svn目錄下,現在要建立一個測試用的檔案庫,名稱叫做repository,指令為:

md d:\svn
svnadmin create d:\svn\repository

命令執行完後,檢查看看 d:\svn\repository目錄底下產生了哪些目錄和檔案。

警告:檔案庫絕對不可以在建立在任何遠端的儲存媒體上,例如:網路磁碟機。

這時候你已經建立了一個檔案庫,你可以先在本機用瀏覽器測試一下,網址輸入http://localhost/svn/repository,看看能不能看到檔案庫的內容,正常的話應該像下圖一樣。

Subversion for Windows 安裝指南(繁体)[1] - zjd9961 - zjd9961的博客


如果以上的測試可以通過,應該就行了。如果你還想要測試一下能不能從檔案庫取出整個工作複本,可以執行下列指令(非必要):

c:
cd\temp
svn co http://localhost/svn WholeRepos

上述指令會切換到一個暫時的目錄c:\temp,然後從檔案庫取出整個工作複本。最後一行指令是要 svn.exe執行 check out 動作(縮寫 co),如果正確的話,應該會顯示 "Checkedout revision 0." 的訊息,此時 /svn/這個檔案庫底下的所有檔案目錄都已經取出,並且複製一份到c:\temp\WholeRepos 目錄下了。

問題排除

如果顯示的錯誤訊息是:

svn: PROPFIND request failed on'/svn/repository'

svn: PROPFIND of '/svn/repository': 405Method Not Allowed (http://localhost)

請檢查 Apache HTTP Server 的 httpd.conf檔案裡面的 標籤所定義的位置是否跟你指定的 URL樣式相同,注意一定要完全相同,以上面的例子而言,你的 httpd.conf的最後面應該會有以下文字:

<Location /svn>
DAV svn
SVNPath 指向檔案庫的絕對路徑

如果顯示的錯誤訊息是:

svn: PROPFIND request failed on'/svn
svn:
Could not open the requested SVN filesystem

那表示在 /svn 對應的實體目錄(即d:/svn)下找不到所指定的目錄。

註:PROPFIND 是給 WebDAV 用的 HTTPmethod,用來從資源中取得屬性。

 

測試完畢就可以把 WholeRepos 這個目錄整個刪掉了。

到目前為止,可以確定檔案庫已經建立完成,接下來就可以匯入專案了。

2.4.1 匯入專案

不用急著把你現有的正式專案匯入檔案庫,先建立一個用來測試的專案目錄就好了。我們先在c:/temp 底下建一個 ProjectA 的專案目錄結構,參考下面的指令:

c:\
md temp
cd\temp
mdProjectA
mdProjectA\trunk
mdProjectA\branches
mdProjectA\tags
svn import .http://localhost/svn -m "Initial repository layout"

提示

本文在執行 svn 命令時,都是使用 http協定的方式,這樣我們可以確知 Subversion 與 Apache HTTP Server的設定無誤,其他人就可以透過 Internet存取檔案庫。當然你也可以用其他的協定,例如:file:///,如果使用 file協定,最後一行指令就變成:

svn import . file:///d:/svn -m "Initialrepository layout"

命令執行無誤的話,應會看到如下的畫面:

Subversion for Windows 安裝指南(繁体)[1] - zjd9961 - zjd9961的博客

Subversion for Windows 安裝指南(繁体)[1] - zjd9961 - zjd9961的博客

這時候 ProjectA這個專案已經匯入檔案庫了,也就是說,其他使用者可以開始存取這個檔案庫的專案取出文件和程式碼了。你可以參考Subversion 的官方手冊中關於 svn.exe這個用戶端命令列工具的使用方法,多練習一下取出檔案、加入檔案、以及存入檔案等指令。萬一練習的過程中發生錯誤,或者檔案庫弄亂了,你可以把整個檔案庫的目錄砍掉,回到2.4 節重新做一遍。

以下會進一步討論檔案庫和專案目錄結構的安排方式,如果你急著想試試看用戶端如何存取Subversion 檔案庫,可以先跳到2.6 節或第 3 節。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值