您的位置:首页 > 其它

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

2012-01-18 11:11 197 查看

2.5 檔案庫與專案的配置方式

延續前面的範例,如果你再匯入其他專案,例如ProjectB,那麼整個檔案庫的結構會變成這樣:

/svn/repository/

+-- ProjectA/

+-- ProjectB/

也就是說 repository 這個檔案庫裡面包含了兩個專案。

如果你希望為每個專案建立一個檔案庫,那麼在 2.4節中建立檔案庫的指令就變成:

md d:\svn

svnadmin create d:\svn\ProjectA

svnadmin create d:\svn\ProjectB

這樣就變成有兩個檔案庫了,檔案庫名稱分別是 ProjectA 與ProjectB。

提示

如果專案之間有共享的檔案,建議把這些相關的專案放進同一個檔案庫;如果專案之間彼此毫無關係,那就採用一個檔案庫放一個專案的方式,這種方式等於專案就是檔案庫。

第一種方式有個比較奇怪的「功能」你應該要知道,就是一個專案的check in 動作,也會令其他專案的檔案的修訂版次遞增,如果這不是你想要的,請選擇第二種方式,即一個檔案庫只存放一個專案。

2.5.1 專案的目錄結構

這裡補充說明一下 ProjectA 的目錄結構。在 ProjectA專案的根目錄下建立的 trunk、branches、和 tags這三個目錄是有特別意義的,它們的作用分別是:

trunk目錄用來存份目前專案正在進行開發的程式檔案和文件(又稱為主線,即mainline);
branches 用來存放主線的各個仍在發展中的分支;
tags則用來存放已經不再變動的分支,也就是其中的檔案不會再修改了。

這是 Subverion
官方手冊建議的目錄結構安排方式,你可以自己決定要不要用這種配置方式,詳細說明請參考官方手冊的第五章,子標題為 "Choosing aRepository Layout"。

提示

目錄名稱建議盡量不要用中文名稱,這樣在使用命令列時比較方便,也比較不會有問題。

2.6 使用Windows
網域帳戶驗證

照著前面的步驟做,你會發現存取檔案庫時都不用輸入帳號密碼,這是因為我們之前的設定沒有啟用身分驗證的功能。但是我們通常不希望所有人都能任意存取你的檔案庫,免得重要資產外洩,或者資料被破壞,因此了解如何加入身分驗證也是必要的。

Serversion 提供了多種驗證使用者身份的方式,這裡只介紹 Windows身分驗證的方式,這種方式很適合用在開發團隊成員都在區域網路內的情況。請依下列步驟進行:

取得 SSPI 模組,下載網址為 http://tortoisesvn.tigris.org/mod_auth_sspi.zip。英文說明在此: href="http://tortoisesvn.sourceforge.net/node/137" target=_blank>http://tortoisesvn.sourceforge.net/node/137

http://tortoisesvn.sourceforge.net/docs/release/TortoiseSVN_en/ch03.html#tsvn-serversetup-apache-5
把 zip 裡面的 mod_auth_sspi.so 解壓縮到 modules 目錄下。
把下面這行加入到 Apache 的 httpd.conf 裡面:

LoadModule sspi_auth_module modules/mod_auth_sspi.so

注意上面加入的這行一定要放在下面這行的前面:

LoadModule auth_module modules/mod_auth.so
修改httpd.conf 的設定如下:

<Location /svn>

DAV svn

SVNParentPath d:/svn

AuthType SSPI

AuthName "Subversion 檔案庫"

Require valid-user

SSPIAuth On

SSPIAuthoritative On

SSPIDomain

SSPIOfferBasic On

</Location>

其中 就是你的 Windows網域控制器的電腦名稱(例如:WIN2KDC),注意兩邊的括號 <>不用保留。如果你的環境沒有網域控制器,就維持原來的就行了。在我的環境下,我發現即使有網域控制器,但是這裡不去設定它,還是能夠正常的驗證使用者身分。

重新啟動 Apache。

現在開啟瀏覽器,輸入網址 http://127.0.0.1/svn看看,你預期應該會看到如下的驗證畫面:



但是卻沒有出現這個畫面,而是直接顯示檔案庫內容,怎麼回事?

因為我們現在是使用 Windows帳戶驗證,你目前已經登入這台機器了,而你要存取的也是本機的資源,換句話說,你的身分已經被驗證過了,所以就不會再要求你輸入帳號跟密碼,這是採用SSPI 網域驗證的好處。

那麼,如果你的同事 John的電腦有加入網域,但是他平時都是登入本機,而非登入網域,在存取檔案庫時會不會要求輸入帳號密碼?答案是如果John登入他本機的帳號和密碼跟他在網域使用者的帳號密碼完全一樣的話,就無需再輸入密碼;相反的,如果登入本機的使用者帳號和密碼與網域使用者帳號密碼不同,第一次存取時就必須輸入密碼。

你可以在別台機器上,用一個網域裡沒有的使用者帳號去存取 Subverion檔案庫,如果正確的話,應該就會出現要求輸入帳號密碼的視窗。

以上還只是最基本的設定,如果你希望做些進階的設定,例如允許所有人都可以檢視檔案庫的內容,但是不能修改;或者要加入SSL 加密機制,建議您參考 [TortoiseSVN 官方文件] 的第三章。

提示

啟用身分驗證之後,你會發現用命令列工具svn.exe 存取檔案庫時,如果是用 http://協定,有些子命令(subcommand)執行時會出現 "authorization failed"的錯誤,這時候你可以在 svn 命令中加入 --username 和 --password來提供使用者名稱和密碼,例如:

svn co http://myserver/svn/ --usernamemichael --password guesswhat

或者你也可以改用 file:///協定。

3.安裝用戶端:TortoiseSVN

現在你已經有一個可以在http存取Subversion的伺服器,可以試著在其他電腦上存取檔案庫了。如果你習慣使用命令列工具,那就只要在用戶端電腦上安裝Subversion 就行了,存取檔案庫都是透過命令列工具(主要是svn.exe)。這裡要介紹的是一個專門為 Windows 作業系統設計的Subversion 用戶端:TortoiseSVN(以下簡稱
TSVN)。

3.1 安裝 TortoiseSVN

http://tortoisesvn.tigris.org下載最新的安裝程式,下載後直接安裝。安裝過程大都是按下一步,只有在問你安裝完成後會要求你重新開機。http://tortoisesvn.tigris.org 下載繁體中文的語言包(languagepack),請注意語言包的版本應該要跟你安裝的 TSVN版本相同,否則最好不要安裝。語言包裝完之後,用檔案總管在 Windows桌面上或任何一個資料夾上點一下滑鼠右鍵,選擇 TortoiseSVN ->Settings 以開啟設定視窗,在 "Main" 頁夾中更改 Language設定為「中文(繁體)」,再按「確定」鈕即可。
如果你是透過 proxy server 存取 Internet,請在 TSVN的設定視窗中,切到「網路」頁夾,然後輸入你的 proxy server相關資訊,否則你將無法存取位於 Internet 上的檔案庫。

安裝完成之後,在任何目錄名稱上點一下滑鼠右鍵都可以看到 TSVN的功能選項,這也是 TSVN方便的地方,它不用跟開發工具整合,而是跟作業系統整合在一起,這樣不管你用什麼開發工具,都可以輕鬆的使用TSVN 來存取檔案庫。

接下來你可以用 TSVN練習一下存取之前建立好的檔案庫,試著把你現有的專案匯入檔案庫中,並且在用戶端使用TSVN 執行取出、存入、更新等動作。

TSVN雖然是用戶端工具,不過它也提供了建立檔案庫、以及匯入、匯出等功能,因此安裝在伺服器端也挺方便的。

4. 結語

按照本文說明的安裝步驟,希望能讓你順利在 Windows 環境下把Subversion安裝起來。但是安裝成功以後,真正的工作要才開始,如果你沒有花點時間閱讀Subversion的相關文件,在使用版本控制系統的過程中,一定會碰到許多問題。

在正式將你的專案加入 Subversion檔案庫之前,建議您多考慮一下:

檔案庫的配置方式。究竟要為每一個專案建立一個檔案庫,還是把多個專案放進同一個檔案庫裡?
專案目錄的結構。你要依照官方手冊的方式,在專案的根目錄下建立trunk、branches、和 tags 嗎?
哪些東西要放進檔案庫裡?

前兩個問題你可以參考 [Subversion電子書第五章]的建議,再衡量自己的需求來決定。你不見得要依照官方的建議,第一次也許採用最單純的配置方式會比較好,例如:一個檔案庫就只放一個專案,而且只把程式的原始碼放進檔案庫,也不去分主線支線了,因此專案的目錄結構可以很單純,程式原始碼的根目錄就是專案的根目錄。自己動手做過幾次以後,再去觀察檔案庫的內容,就會比較有感覺了,然後再來考慮自己團隊的需求,自然就能找到最適合自己團隊的配置方式了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: