Jen

Subversion for Windows 設定初體驗

團隊開發專案時,CM(configuration management,軟工老師稱為構型管理)是蠻重要的一個環節,以前大四傻傻做專題的時候,如果懂得利用工具做CM,就不用常常人工CM(很累的!)。 Subversion 這套工具,在這我就不多做介紹了,此篇文章的重點在於如何在windows 上利用Apache來把Subversion架起來(Subversion for Windows with Apache server)。而至於Subversion的介紹,在你把Subversion安裝起來後,桌面自然有他的document可以參考。 第一步我們要準備三樣東西,然後照著順序安裝完成。

1. Subversion : 載點 link

2.TortoiseSVN : 載點 link

3.Apache http server : 載點 link

在安裝Apache server之前,要先確定一件事,就是您電腦中tcp 的80port有沒有被佔用,因為Apache預設的tcp port是80,如果80port被佔用,則無法順利啟動Apache。如果您已有裝iis,就先停掉吧,iis的預設port也是80。 還有另一個方式,可以查出你電腦中所有在使用的port。開始 > 執行 > cmd , 進入command line模式之後,打上「netstat -ano」,就可以查出每個正在使用的port,開啟「工作管理員」對照他的PID,就可以馬上知道哪個port正在被哪個Application佔用。 第二步 1.當Apache可以正常work之後,到你安裝subversion的目錄,找到bin資料夾,把五個檔案拷貝起來。

  • libdb44.dll
  • libeay32.dll
  • ssleay32.dll
  • mod_authz_svn.so
  • mod_dav_svn.so

將上述五個檔案拷貝到Apache\Modules 資料夾裏。

以我為例 : 從 "C:\Program Files\Subversion\bin\ " 裏拷貝上述五個檔案,放到"C:\Program Files\Apache Group\Apache2\modules"資料夾裏。 接著就是設定Apach\conf目錄中 "httpd.conf" 的設定。 在LoadModule的部分,在LoadModule最後加上以下兩段,

  • LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
  • LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"
這兩個必須在其他Module之後被Load進來。 重點好玩的來了 通常我們不希望把Subversion的設定跟Apache的設定放在一起,所以我們另外開一個資料夾,用來存放Subversion的設定。假設是 E:\SubversionSetting\ 我們新增一個subversion.conf檔案。然後在Apach的httpd.conf檔案的最後一行加上 "Include E:\SubversionSetting\subversion.conf" 代表我們把新增的subversion.conf檔案include進來。 接著就是subversion.conf裏的設定了。 另外,在E:\SubversionSetting\裏再新增兩個檔案。分別為:
  • svn-acl : 用來做權限的管理
  • svn-auth-file : 用來存放使用者帳號及密碼

皆不用加上副檔名沒關係。最後就是要來說明這三個檔案之間要怎麼設定。

subversion.conf裏的設定是這樣,

 <Location /project1> --->在http位址中的虛擬路徑

DAV svn SVNPath E:/SVNTEST --->SVN的實際路徑
AuthType Basic AuthName "Subversion Project1 repository"
AuthUserFile E:/SubversionSetting/svn-auth-file -------> 使用者資料的檔案
Require valid-user AuthzSVNAccessFile E:/SubversionSetting/svn-acl -------> 使用權限檔案

</Location >

管理使用者檔案 : svn-auth-file 新增使用者 C:\SubversionSetting\etc>htpasswd -m C:\etc\svn-auth-file jen

New password: *****
Re-type new password: *****
Adding password for user jen
(記得要把Subversion\bin資料夾路徑加到「環境變數」裏去)
使用者權限管理 : svn-acl 假設我有兩個project,一個project1、一個project2,有兩個使用者jen及jen2 [groups] team1 = jen , jen2 設定群組,team1裏有jen及jen2
[project1:/]
@team1 = rw
* = r
代表project1可讓team1群組讀跟寫,其他匿名使用者就只能讀不能寫入

[project2:/]
jen = rw
jen2 = r
* = r
代表project2可以讓jen讀寫,jen2及匿名使用者就只能讀不能寫


參考 :: http://svn.spears.at/

0 意見: