小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

luocheng

 ekylin 2006-08-07

subversion

摘要

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

1. 簡介

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

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

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

1.1. 閱讀基本觀念

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

1.2. 作業(yè)環(huán)境與軟體版本

以下是筆者安裝 Subverion 的作業(yè)環(huán)境與軟體版本:

  • Windows 2000 Server with SP4
  • Apache HTTP Server v2.0.5x
  • Subversion v1.1.x 以上
  • TortoiseSVN 1.0.6 build 1200
2. 安裝與建立 Subversion 伺服器

本節(jié)介紹安裝 Subversion 所需的步驟,請準(zhǔn)備一臺穩(wěn)定的機器,作為 Subversion 的伺服器。

2.1. 安裝 Apache HTTP Server

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

安裝過程沒什麼特別的步驟,就不贅述了,但安裝之前請先檢查你的電腦是否有安裝 IIS,由於 Apache 預(yù)設(shè)使用 80 port,會跟 IIS 的網(wǎng)站衝突,你必須把 IIS 的 Web 站臺關(guān)閉,再安裝 Apache HTTP Server。

安裝完成以後,開啟瀏覽器,瀏覽網(wǎng)址 http://127.0.0.1/ 看看有沒有出現(xiàn)安裝成功的網(wǎng)頁。

2.2. 安裝 Subversion

Subversion 1.1.x 以後的版本,在安裝過程上比之前的版本更簡單、更自動化了,安裝步驟如下:

  1. http://subversion./ 下載最新版的 Subversion,你可以下載 .zip 或者打包好的自動安裝程式,我下載的是檔案 svn-1.1.3-setup.exe。
  2. 下載後直接安裝,安裝過程都是按「下一步」,沒什麼特別的。安裝程式會偵測系統(tǒng)是否有安裝 Apache HTTP Server,如果有偵測到,會出現(xiàn)安裝選項讓你選擇是否讓安裝程式自動幫你設(shè)定好 Apache 的組態(tài)。參考下圖:

 

安裝完成後,Apache HTTP Server 應(yīng)該會自動重新啟動,如果安裝程序結(jié)束,Apache HTTP Server 無法啟動,表示安裝過程有問題。

問題排除

基本上,安裝過程應(yīng)該會很順利,但我曾碰到一些很奇怪的情況,Subversion 安裝完之後,Apache 就是無法啟動,如果你也碰到這種情形,可以先 Subversion 安裝目錄下的 W32Notes.txt,裡面有一些問題排除的提示。

 

舊版 Subversion 的安裝方式(v1.0.x)

如果你安裝的 Subversion 是 1.0.x 的版本,或者因為某些原因想要手動設(shè)定 Subversion 與 Apache HTTP Server 的組態(tài)(例如:問題排除),可參考以下安裝步驟:

  1. 下載並安裝 Subversion 1.0.x。必要的環(huán)境變數(shù)和 Apache 都幫你設(shè)定好了(如果你下載的是 .zip 檔,就要自行設(shè)定)。
  2. 把 <Subversion_root>/httpd/ 目錄下的 mod_dav_svn.so 和 mod_authz_svn.so 複製到 <Apache_root>/modules/ 目錄下。
  3. 把 <Subversion_root>/bin/ 目錄下的 libdb42.dll、libeay32.dll、以及 ssleay32.dll 複製到 <Apache_root> 底下的 bin 或 modules 資料夾。
  4. 接著用文書編輯器開啟 Apache HTTP Server 的 httpd.conf(在 <Apache_root>/conf/ 目錄下),尋找一堆 LoadModule 指令,先找到以下兩行:

    #LoadModule dav_module modules/mod_dav.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so


    把前面的 ‘#‘ 字元刪除,然後把下面幾行文字加到這群 LoadModule 指令的後面:

    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
     
  5. 重新啟動 Apache HTTP Server。

問題排除

如果 Apache HTTP Server 無法啟動,請依下列步驟檢查:

  1. 檢查 Subversion 的路徑是否有在系統(tǒng)的 %PATH% 環(huán)境變數(shù)裡面。
  2. 檢查你加入 httpd.conf 裡的項目是否正確,記住 mod_dav_svn.so 和 mod_authz_svn.so 必須在其他 mod_dav*.so 模組之後載入。

 

2.3. 設(shè)定 Subversion 檔案庫的路徑

現(xiàn)在要設(shè)定 URL 路徑與檔案庫實體路徑的對應(yīng)關(guān)係。對應(yīng)的方式有兩種,分別是 SVNPath 與 SVNParentPath。

2.3.1. SVNPath

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

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

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

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

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

2.3.2. SVNParentPath

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

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

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

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

將 <Location> 的設(shè)定加到 Apache HTTP Server 的 httpd.conf 檔尾就行了(Apache 需重啟)。

接著便可以開始建立檔案庫,如果你已經(jīng)很熟悉檔案庫的建立與匯入工作,可以略過後續(xù)兩個小節(jié),直接跳到「2.6 使用 Windows 網(wǎng)域帳戶驗證」以了解如何驗證存取檔案庫的使用者身分。

2.4. 建立檔案庫

延續(xù)前面的範(fàn)例設(shè)定,假設(shè)我們要把所有的檔案庫都放在 d:/svn 目錄下,現(xiàn)在要建立一個測試用的檔案庫,名稱叫做 在 repository,指令為:

md d:/svn svnadmin create d:/svn/repository

命令執(zhí)行完後,檢查看看 d:/svn/repository 目錄底下產(chǎn)生了哪些目錄和檔案。

警告

檔案庫絕對不可以在建立在任何遠(yuǎn)端的儲存媒體上,例如:網(wǎng)路磁碟機。

 

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

 

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

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

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

問題排除

如果顯示的錯誤訊息是:

svn: PROPFIND request failed on ‘/svn/repository‘ svn: PROPFIND of ‘/svn/repository‘: 405 Method Not Allowed (http://localhost)

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

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

如果顯示的錯誤訊息是:

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

那表示在 /svn 對應(yīng)的實體目錄(即 d:/svn)下找不到 reposiroty 這個目錄。

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

 

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

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

2.5. 匯入專案

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

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

提示

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

svn import . file:///d:/svn/repository -m "Initial repository layout"

 

命令執(zhí)行無誤的話,應(yīng)會看到如下的畫面:

 

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

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

2.5.1. 檔案庫與專案的配置方式

延續(xù)前面的範(fàn)例,如果你再匯入其他專案,例如 ProjectB,那麼整個檔案庫的結(jié)構(gòu)會變成這樣:

/svn/repository/ +-- ProjectA/ +-- ProjectB/

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

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

md d:/svn svnadmin create d:/svn/ProjectA svnadmin create d:/svn/ProjectB

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

提示

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

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

 

2.5.2. 專案的目錄結(jié)構(gòu)

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

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

這是 Subverion 官方手冊建議的目錄結(jié)構(gòu)安排方式,你可以自己決定要不要用這種配置方式,詳細(xì)說明請參考官方手冊的第五章,子標(biāo)題為 "Choosing a Repository Layout"。

提示

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

 

2.6. 使用 Windows 網(wǎng)域帳戶驗證

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

Subversion 提供了多種驗證使用者身份的方式,這裡只介紹 Windows 身分驗證的方式,這種方式很適合用在開發(fā)團(tuán)隊成員都在區(qū)域網(wǎng)路內(nèi)的情況。請依下列步驟進(jìn)行:

  1. 取得 SSPI 模組,下載網(wǎng)址為 http://tortoisesvn./mod_auth_sspi.zip
  2. 把 zip 裡面的 mod_auth_sspi.so 解壓縮到 <Apache_root>\modules 目錄下。
  3. 把下面這行加入到 Apache 的 httpd.conf 裡面:LoadModule sspi_auth_module modules/mod_auth_sspi.so 注意上面加入的這行一定要放在下面這行的前面:LoadModule auth_module modules/mod_auth.so
  4. 修改 httpd.conf 的 <Location> 設(shè)定如下:<Location /svn> DAV svn SVNParentPath d:/svn AuthType SSPI AuthName "Subversion 檔案庫" Require valid-user SSPIAuth On SSPIAuthoritative On SSPIDomain <domaincontroller> SSPIOfferBasic On </Location>

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

  5. 重新啟動 Apache。

好了,現(xiàn)在開啟瀏覽器,輸入網(wǎng)址 http://127.0.0.1/svn/repository 看看,你預(yù)期應(yīng)該會看到如下的驗證畫面:

 

但是卻沒有出現(xiàn)這個畫面,而是直接顯示檔案庫內(nèi)容,怎麼回事?

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

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

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

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

提示

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

svn co http://myserver/svn/ --username michael --password guesswhat

或者你也可以改用 file:/// 協(xié)定。

 

3. 安裝用戶端:TortoiseSVN

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

3.1. 安裝 TortoiseSVN
  1. http://tortoisesvn./ 下載最新的安裝程式,下載後直接安裝。安裝過程大都是按下一步,只有在問你



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

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

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

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

4. 結(jié)語

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

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

  1. 檔案庫的配置方式。究竟要為每一個專案建立一個檔案庫,還是把多個專案放進(jìn)同一個檔案庫裡?
  2. 專案目錄的結(jié)構(gòu)。你要依照官方手冊的方式,在專案的根目錄下建立 trunk、branches、和 tags 嗎?
  3. 哪些東西要放進(jìn)檔案庫裡?

前兩個問題你可以參考 [1] 的建議(第五章),再衡量自己的需求來決定。你不見得要依照官方的建議,第一次也許採用最單純的配置方式會比較好,例如:一個檔案庫就只放一個專案,而且只把程式的原始碼 放進(jìn)檔案庫,也不去分主線支線了,因此專案的目錄結(jié)構(gòu)可以很單純,程式原始碼的根目錄就是專案的根目錄。自己動手做過幾次以後, 再去觀察檔案庫的內(nèi)容,就會比較有感覺了,然後再來考慮自己團(tuán)隊的需求,自然就能找到最適合自己團(tuán)隊的配置方式了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多