您的位置:軟件測試 > 開源軟件測試 > 開源軟件測試解決方案 >
Subversion for Windows 安裝指南
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/7 11:30:30 ] 推薦標(biāo)簽:

2.4 建立Subversion檔案庫
假設(shè)我們要把所有的檔案庫都放在 d:svn 目錄下,現(xiàn)在要建立一個(gè)測試用的檔案庫,名稱叫做 repository,指令為:
md d:svnsvnadmin create d:svn epository
命令執(zhí)行完后,檢查看看 d:svn epository 目錄底下產(chǎn)生了哪些目錄和檔案。
警告:檔案庫不可以在建立在任何遠(yuǎn)端的儲(chǔ)存媒體上,例如:網(wǎng)路磁碟機(jī)。
這時(shí)候你已經(jīng)建立了一個(gè)檔案庫,你可以先在本機(jī)用瀏覽器測試一下,網(wǎng)址輸入http://localhost/svn/repository,看看能不能看到檔案庫的內(nèi)容,正常的話應(yīng)該像下圖一樣。

如果以上的測試可以通過,應(yīng)該行了。如果你還想要測試一下能不能從檔案庫取出整個(gè)工作復(fù)本,可以執(zhí)行下列指令(非必要):
c:cd empsvn co http://localhost/svn WholeRepos上 述指令會(huì)切換到一個(gè)暫時(shí)的目錄 c: emp,然后從檔案庫取出整個(gè)工作復(fù)本。后一行指令是要 svn.exe 執(zhí)行 check out 動(dòng)作(縮寫 co),如果正確的話,應(yīng)該會(huì)顯示 "Checked out revision 0." 的訊息,此時(shí) /svn/ 這個(gè)檔案庫底下的所有檔案目錄都已經(jīng)取出,并且復(fù)制一份到 c: empWholeRepos 目錄下了。
問題排除
如果顯示的錯(cuò)誤訊息是:
svn: PROPFIND request failed on '/svn/repository'
svn: PROPFIND of '/svn/repository': 405 Method Not Allowed (http://localhost)
請檢查 Apache HTTP Server 的 httpd.conf 檔案里面的 標(biāo)簽所定義的位置是否跟你指定的 URL 樣式相同,注意一定要完全相同,以上面的例子而言,你的 httpd.conf 的后面應(yīng)該會(huì)有以下文字:
<Location /svn>DAV svnSVNPath 指向檔案庫的路徑
如果顯示的錯(cuò)誤訊息是:
svn: PROPFIND request failed on '/svnsvn:Could not open the requested SVN filesystem
那表示在 /svn 對應(yīng)的實(shí)體目錄(即 d:/svn)下找不到所指定的目錄。
注:PROPFIND 是給 WebDAV 用的 HTTP method,用來從資源中取得屬性。
 
測試完畢可以把 WholeRepos 這個(gè)目錄整個(gè)刪掉了。
到目前為止,可以確定檔案庫已經(jīng)建立完成,接下來可以匯入專案了。
2.4.1 匯入專案
不用急著把你現(xiàn)有的正式專案匯入檔案庫,先建立一個(gè)用來測試的專案目錄好了。我們先在 c:/temp 底下建一個(gè) ProjectA 的專案目錄結(jié)構(gòu),參考下面的指令:
c:md tempcd empmd ProjectAmd ProjectA runkmd ProjectAranchesmd ProjectA agssvn import . http://localhost/svn -m "Initial repository layout"
提示
本文在執(zhí)行 svn 命令時(shí),都是使用 http 協(xié)定的方式,這樣我們可以確知 Subversion 與 Apache HTTP Server 的設(shè)定無誤,其他人可以透過 Internet 存取檔案庫。當(dāng)然你也可以用其他的協(xié)定,例如:file:///,如果使用 file 協(xié)定,后一行指令變成:
svn import .file:///d:/svn -m "Initial repository layout"
這時(shí)候 ProjectA 這個(gè)專案已經(jīng)匯入檔案庫了,也是說,其他使用者可以開始存取這個(gè)檔案庫的專案取出文件和程式碼了。你可以參考 Subversion 的官方手冊中關(guān)于 svn.exe 這個(gè)用戶端命令列工具的使用方法,多練習(xí)一下取出檔案、加入檔案、以及存入檔案等指令。萬一練習(xí)的過程中發(fā)生錯(cuò)誤,或者檔案庫弄亂了,你可以把整個(gè)檔案庫 的目錄砍掉,回到 2.4 節(jié)重新做一遍。
以下會(huì)進(jìn)一步討論檔案庫和專案目錄結(jié)構(gòu)的安排方式,如果你急著想試試看用戶端如何存取 Subversion 檔案庫,可以先跳到2.6 節(jié)或第 3 節(jié)。
 
2.5 檔案庫與專案的配置方式
延續(xù)前面的范例,如果你再匯入其他專案,例如 ProjectB,那么整個(gè)檔案庫的結(jié)構(gòu)會(huì)變成這樣:
/svn/repository/+-- ProjectA/+-- ProjectB/
也是說 repository 這個(gè)檔案庫里面包含了兩個(gè)專案。
如果你希望為每個(gè)專案建立一個(gè)檔案庫,那么在 2.4 節(jié)中建立檔案庫的指令變成:
md d:svnsvnadmin create d:svnProjectAsvnadmin create d:svnProjectB
這樣變成有兩個(gè)檔案庫了,檔案庫名稱分別是 ProjectA 與 ProjectB。
提示
如果專案之間有共享的檔案,建議把這些相關(guān)的專案放進(jìn)同一個(gè)檔案庫;如果專案之間彼此毫無關(guān)系,那采用一個(gè)檔案庫放一個(gè)專案的方式,這種方式等于專案是檔案庫。
第一種方式有個(gè)比較奇怪的「功能」你應(yīng)該要知道,是一個(gè)專案的 check in 動(dòng)作,也會(huì)令其他專案的檔案的修訂版次遞增 ,如果這不是你想要的,請選擇第二種方式,即一個(gè)檔案庫只存放一個(gè)專案。
 
2.5.1 專案的目錄結(jié)構(gòu)
這里補(bǔ)充說明一下 ProjectA 的目錄結(jié)構(gòu)。在 ProjectA 專案的根目錄下建立的 trunk、branches、和 tags 這三個(gè)目錄是有特別意義的,它們的作用分別是:
trunk 目錄用來存份目前專案正在進(jìn)行開發(fā)的程式檔案和文件(又稱為主線,即 mainline);
branches 用來存放主線的各個(gè)仍在發(fā)展中的分支;
tags 則用來存放已經(jīng)不再變動(dòng)的分支,也是其中的檔案不會(huì)再修改了。
這是 Subverion 官方手冊建議的目錄結(jié)構(gòu)安排方式,你可以自己決定要不要用這種配置方式,詳細(xì)說明請參考官方手冊的第五章,子標(biāo)題為 "Choosing a Repository Layout"。
提示
目錄名稱建議盡量不要用中文名稱,這樣在使用命令列時(shí)比較方便,也比較不會(huì)有問題。

2.6 使用 Windows網(wǎng)域帳戶驗(yàn)證
照著前面的步驟做,你會(huì)發(fā)現(xiàn)存取檔案庫時(shí)都不用輸入帳號(hào)密碼,這是因?yàn)槲覀冎暗脑O(shè)定沒有啟用身分驗(yàn)證的功能。但是我們通常不希望所有人都能任意存取你的檔案庫,免得重要資產(chǎn)外泄,或者資料被破壞,因此了解如何加入身分驗(yàn)證也是必要的。
Serversion 提供了多種驗(yàn)證使用者身份的方式,這里只介紹 Windows 身分驗(yàn)證的方式,這種方式很適合用在開發(fā)團(tuán)隊(duì)成員都在區(qū)域網(wǎng)路內(nèi)的情況。請依下列步驟進(jìn)行:
取得 SSPI 模組,下載網(wǎng)址為 http://tortoisesvn.tigris.org/mod_auth_sspi.zip。英文說明在此:http://tortoisesvn.sourceforge.net/node/137http://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 的設(shè)定如下:<Location /svn>DAV svnSVNParentPath d:/svnAuthType SSPIAuthName "Subversion 檔案庫"Require valid-userSSPIAuth OnSSPIAuthoritative OnSSPIDomainSSPIOfferBasic On</Location>其 中 是你的 Windows 網(wǎng)域控制器的電腦名稱(例如:WIN2KDC),注意兩邊的括號(hào) <> 不用保留。如果你的環(huán)境沒有網(wǎng)域控制器,維持原來的行了。在我的環(huán)境下,我發(fā)現(xiàn)即使有網(wǎng)域控制器,但是這里不去設(shè)定它,還是能夠正常的驗(yàn)證使用者身 分。
重新啟動(dòng) Apache。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd