• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2008年10月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            收藏夾

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            作者:indian

            版本:v1.2

            修訂:2008年1月24日11:45:35

            出處:blog.kysf.net

            版權(quán):作者保留對(duì)本文的一切修改、發(fā)布等權(quán)力。任何人想要轉(zhuǎn)載本文部分或全部?jī)?nèi)容時(shí),必須保留包括作者、版本、修訂、出處、版權(quán),共五項(xiàng)信息。對(duì)本文的參考引用,則不受限制。

             

            關(guān)鍵詞:subversion, 安裝配置, 權(quán)限, 目錄訪問(wèn)

             

            1 前言
            2 基本概念
             2.1 什么是版本控制
             2.2 什么是 Subversion
             2.3 版本庫(kù)(repository)
            3 安裝配置
             3.1 安裝獨(dú)立服務(wù)器 SVNServer
             3.2 安裝 ApacheSVN 服務(wù)器
            4 FAQ
            5 參考資料

             

             

            1、前 言

             

            花了72小時(shí),終于把 Subversion 初步掌握了。從一個(gè)連“什么是版本控制”都不知道的門(mén)外漢,到配置出精確至每目錄訪問(wèn)的入門(mén)者,中間還卡了一天時(shí)間。其中費(fèi)了許多氣力,摸索實(shí)驗(yàn)了多次,還差點(diǎn)放棄了,但是收獲是巨大的。現(xiàn)把我的配置和學(xué)習(xí)過(guò)程寫(xiě)下來(lái),供大家參考,也讓初學(xué)者少走彎路。

            由于本人不會(huì) Unix/Linux (正在學(xué)習(xí)中),故僅以 Windows 平臺(tái)為例講解,Unix/Linux 平臺(tái)請(qǐng)參考相關(guān)資料。如其中有謬誤的地方,包括錯(cuò)別字,請(qǐng)聯(lián)系我修訂。

            技術(shù)在分享中進(jìn)步!

             

             

            2、基本概念

             

            2.1、什么是版本控制

            簡(jiǎn)單點(diǎn)來(lái)說(shuō),版本控制就是數(shù)據(jù)倉(cāng)庫(kù),它可以記錄你對(duì)文件的每次更改。這樣,就算你在昏天黑地的改了幾個(gè)月后老板說(shuō)不要了,還是按照過(guò)去那樣,你也不會(huì)抓狂,簡(jiǎn)單的恢復(fù)版本操作就搞定一切。

             

            2.2、什么是 Subversion

            Subversion是一個(gè)自由/開(kāi)源版本控制系統(tǒng),它管理文件和目錄可以超越時(shí)間。一組文件存放在中心版本庫(kù),這個(gè)版本庫(kù)很像一個(gè)普通的文件服務(wù)器,只是它可以記錄每一次文件和目錄的修改,這便使你可以取得數(shù)據(jù)以前的版本,從而可以檢查所作的更改。從這個(gè)方面看,許多人把版本控制系統(tǒng)當(dāng)作一種“時(shí)間機(jī)器”。

            Subversion可以通過(guò)網(wǎng)絡(luò)訪問(wèn)它的版本庫(kù),從而使用戶可以在不同的電腦上使用。一定程度上可以說(shuō),允許用戶在各自的地方修改同一份數(shù)據(jù)是促進(jìn)協(xié)作。進(jìn)展可能非常的迅速,并沒(méi)有一個(gè)所有的改變都會(huì)取得效果的通道,由于所有的工作都有歷史版本,你不必?fù)?dān)心由于失去某個(gè)通道而影響質(zhì)量,如果存在不正確的改變,只要取消改變。

            一些版本控制系統(tǒng)也是軟件配置管理(SCM)系統(tǒng),這種系統(tǒng)經(jīng)過(guò)特定的精巧設(shè)計(jì)來(lái)管理源代碼,有許多關(guān)于軟件開(kāi)發(fā)的特性—本身理解編程語(yǔ)言、或者提供構(gòu)建程序的工具。然而,Subversion不是這樣一個(gè)系統(tǒng),它是一個(gè)通用系統(tǒng),可以管理任何類型的文件集,對(duì)你這可能是源代碼,對(duì)別人,可能是一個(gè)貨物報(bào)價(jià)單或者是書(shū)稿等。

             

            2.3、版本庫(kù)(repository)

            Subversion 的核心就是 rpository ,中文翻譯成“版本庫(kù)”。就是位于服務(wù)器端,統(tǒng)一管理和儲(chǔ)存數(shù)據(jù)的地方。

             

             

            3、安裝配置

             

            3.1 安裝獨(dú)立服務(wù)器 SVNServer

            環(huán)境

            OS:Windows XP SP2

            Web:Apache 2.2.6

            SVN:svn-win32-1.4.6

             

            一、準(zhǔn)備工作

            1、獲取 Subversion 服務(wù)器程序

            到官方網(wǎng)站(http://subversion.tigris.org/)下載最新的服務(wù)器安裝程序。目前最新的是1.4.6版本,具體下載地址在:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91 ,注意找 for apache 2.2.x 版本的。

            2、獲取 TortoiseSVN 客戶端程序

            從官方網(wǎng)站 http://tortoisesvn.net/downloads 獲取最新的 TortoiseSVN 。TortoiseSVN 是一個(gè)客戶端程序,用來(lái)與 subvers 服務(wù)器端通訊。Subversion 自帶一個(gè)客戶端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。

             

            二、安裝服務(wù)器端和客戶端

            首先安裝 Apache 2.2.6 ,具體安裝方法大家參考相關(guān)資料,或者參看我寫(xiě)的《Windows下安裝Apache 2.2.x》。

            其次安裝 Subversion(以下簡(jiǎn)稱SVN)的服務(wù)器端和客戶端。下載下來(lái)的服務(wù)器端是個(gè) zip 壓縮包,直接解壓縮即可,比如我解壓到 E:\subversion 。客戶端安裝文件是個(gè) exe 可執(zhí)行文件,直接運(yùn)行按提示安裝即可,客戶端安裝完成后提示重啟。

             

            三、建立版本庫(kù)(Repository)

            運(yùn)行Subversion服務(wù)器需要首先要建立一個(gè)版本庫(kù)(Repository)。版本庫(kù)可以看作是服務(wù)器上集中存放和管理數(shù)據(jù)的地方。

            開(kāi)始建立版本庫(kù)。首先建立 e:\svn 空文件夾作為所有版本庫(kù)的根目錄。然后,進(jìn)入命令行并切換到subversion的bin目錄。輸入如下命令:

            svnadmin create E:\svn\repos1

            此命令在 E:\svn 下建立一個(gè)版本庫(kù) repos1 。repos1 下面會(huì)自動(dòng)生成一些文件夾和文件。

            我們也可以使用 TortoiseSVN 圖形化的完成這一步:

            先建立空目錄 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夾上“右鍵->TortoiseSVN->Create Repository here...”,然后可以選擇版本庫(kù)模式,這里使用默認(rèn)的FSFS即可,然后就創(chuàng)建了一系列文件夾和文件,同命令行建立的一樣。

             

            四、運(yùn)行獨(dú)立服務(wù)器

            此時(shí) subversion 服務(wù)還沒(méi)有開(kāi)始,只是通過(guò)它的命令建立了版本庫(kù)。繼續(xù)在剛才的命令窗口輸入:

            svnserve.exe --daemon

            svnserve 將會(huì)在端口 3690 等待請(qǐng)求,--daemon(兩個(gè)短橫線)選項(xiàng)告訴 svnserve 以守護(hù)進(jìn)程方式運(yùn)行,這樣在手動(dòng)終止之前不會(huì)退出。注意不要關(guān)閉命令行窗口,關(guān)閉窗口會(huì)把 svnserve 停止。

            為了驗(yàn)證svnserve正常工作,使用TortoiseSVN -> Repo-browser 來(lái)查看版本庫(kù)。在彈出的 URL 對(duì)話框中輸入:

            svn://localhost/svn/repos1

            點(diǎn) OK 按鈕后就可以看見(jiàn) repos1 版本庫(kù)的目錄樹(shù)結(jié)構(gòu)了,只不過(guò)這時(shí) repos1 是個(gè)空庫(kù)。

            你也可以使用--root選項(xiàng)設(shè)置根位置來(lái)限制服務(wù)器的訪問(wèn)目錄,從而增加安全性和節(jié)約輸入svnserve URL的時(shí)間:

            svnserve.exe --daemon --root drive:\path\to\repository

            以前面的測(cè)試作為例,svnserve 將會(huì)運(yùn)行為:

            svnserve.exe --daemon --root e:\svn

            然后TortoiseSVN中的版本庫(kù)瀏覽器URL縮減為:

            svn://localhost/repos1

             

            五、配置用戶和權(quán)限

            用文本編輯器打開(kāi)E:\svn\repos1\conf目錄,修改svnserve.conf:

            將:

            # password-db = passwd

            改為:

            password-db = passwd

            即去掉前面的 # 注釋符,注意前面不能有空格。

            然后修改同目錄的passwd文件,增加一個(gè)帳號(hào):

            將:

            [users]
            # harry = harryssecret
            # sally = sallyssecret

            增加帳號(hào):

            [users]
            #harry = harryssecret
            #sally = sallyssecret
            test = test

             

            六、初始化導(dǎo)入

            下面就是將我們的數(shù)據(jù)(項(xiàng)目)導(dǎo)入到這個(gè)版本庫(kù),以后就由版本庫(kù)管理我們的數(shù)據(jù)。我們的任何改動(dòng)都回被版本庫(kù)記錄下來(lái),甚至我們自己丟失、改錯(cuò)數(shù)據(jù)時(shí)版本庫(kù)也能幫我們找回?cái)?shù)據(jù)。

            比如,我在 d:\wwwroot 下有個(gè) guestbook 文件夾,里面存放的是我編寫(xiě)的留言簿程序。在此文件夾上“右鍵 -> TortoiseSVN -> Import...” ,在彈出對(duì)話框的“URL of repository”輸入“svn://localhost/repos1/guestbook”。在“Import message”輸入“導(dǎo)入整個(gè)留言簿”作為注釋。
            點(diǎn) OK 后要求輸入帳號(hào)。我們?cè)谟脩裘兔艽a處都輸入 test 。完成后 guestbook 中的內(nèi)容全部導(dǎo)入到了 svn://localhost/svn/repos1/guestbook 。

            我們看到在 e:\svn\repos1 沒(méi)有任何變化,連個(gè) guestbook 文件夾都沒(méi)有建立,唯一的變化就是e:\svn\repos1容量變大了。實(shí)際上我們?cè)磄uestbook中的內(nèi)容已經(jīng)導(dǎo)入 repos1 版本庫(kù)了,源 guestbook 文件夾可以刪除了。

            需要注意的是,這一步操作可以完全在另一臺(tái)安裝了 TortoiseSVN 的客戶機(jī)上進(jìn)行。例如運(yùn)行svnserve的主機(jī)的IP是133.96.121.22,則URL部分輸入的內(nèi)容就是“svn://133.96.121.22” 。

             

            七、基本操作流程

            1、取出(check out)

            取出版本庫(kù)到一個(gè)工作拷貝:

            來(lái)到任意空目錄下,比如在f分區(qū)建立一個(gè)空文件夾 f:\work 。“右鍵 -> SVN Checkout”。在“URL of repository”中輸入“svn://localhost/svn/repos1/guestbook”,這樣我們就得到了一份 guestbook 中內(nèi)容的工作拷貝。

            2、存入(check in)/提交(commit)

            在工作拷貝中作出修改并提交:

            在 guestbook 工作拷貝中隨便打開(kāi)一個(gè)文件,作出修改,然后“右鍵 -> SVN Commit... ”。這樣我們就把修改提交到了版本庫(kù),版本庫(kù)根據(jù)情況存儲(chǔ)我們提交的數(shù)據(jù)。

            在修改過(guò)的文件上“右鍵 -> TortoiseSVN -> Show Log” ,可以看到對(duì)這個(gè)文件所有的提交。在不同的 revision 條目上“右鍵 -> Compare with working copy”,我們可以比較工作拷貝的文件和所選 revision 版本的區(qū)別。

             

             

            3.2 安裝 ApacheSVN 服務(wù)器

            Subversion的設(shè)計(jì)包括一個(gè)抽象的網(wǎng)絡(luò)層,這意味著版本庫(kù)可以通過(guò)各種服務(wù)器進(jìn)程訪問(wèn)。理論上講,Subversion可以使用無(wú)限數(shù)量的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn),目前實(shí)踐中存在著兩種服務(wù)器。

             

            • SVNServer:svnserve 是一個(gè)小的(也叫輕型的)、獨(dú)立服務(wù)器,使用自己定義的協(xié)議和客戶端。(作者注:以下稱這種服務(wù)器為“svnserver服務(wù)器”,上面的安裝配置就是安裝svnserver服務(wù)器。)

               
            • ApacheSVN:Apache是最流行的web服務(wù)器,通過(guò)使用 mod_dav_svn 模塊,Apache可以訪問(wèn)版本庫(kù),并且可以使客戶端使用HTTP的擴(kuò)展協(xié)議WebDAV/DeltaV進(jìn)行訪問(wèn)。(作者注:以下稱這種服務(wù)器為“ApacheSVN服務(wù)器”)

             

            通過(guò) Http 協(xié)議訪問(wèn)版本庫(kù)是 Subversion 的亮點(diǎn)之一。ApacheSVN服務(wù)器 具備了許多 svnserve服務(wù)器 沒(méi)有的特性,使用上更加靈活,但是有一點(diǎn)難于配置,靈活通常會(huì)帶來(lái)復(fù)雜性。

            由于 Subversion 需要版本化的控制,因此標(biāo)準(zhǔn)的 Http 協(xié)議不能滿足需求。要讓 Apache 與 Subversion 協(xié)同工作,需要使用 WebDAV(Web-based Distributed Authoring and Versioning:)Web 分布式創(chuàng)作和版本控制)。WebDAV 是 HTTP 1.1 的擴(kuò)展,關(guān)于 WebDAV 的規(guī)范和工作原理,可以參考 IETF RFC 2518

             

            一、必備條件

            為了讓你的版本庫(kù)使用HTTP網(wǎng)絡(luò),你必需具備以下幾個(gè)條件:

            1. 配置好httpd 2.2.x,并且使用mod_dav啟動(dòng)。
            2. 為mod_dav安裝mod_dav_svn插件。
            3. 配置你的httpd.conf,使http協(xié)議能訪問(wèn)版本庫(kù)。

            下面以我的配置過(guò)程詳細(xì)講解。

            環(huán)境:

            OS:Windows XP SP2

            Web:Apache 2.2.6

            SVN:svn-win32-1.4.6

             

            二、安裝

            1、安裝Apache

            具體安裝方法見(jiàn):《Windows下安裝Apache 2.2.x

            2、安裝 Subversion

            將下載下來(lái)的 svn-win32-1.4.6.zip 直接解壓即可,比如我解壓到 e:\subversion 。
            從Subversion安裝目錄的 bin 子目錄將 intl3_svn.dll、libdb44.dll、mod_authz_svn.so、mod_dav_svn.so 拷貝到Apache的模塊目錄(Apache 安裝目錄的 modules 文件夾)。

             

            三、基本的Apache配置

            修改Apache的配置文件 httpd.conf ,使用LoadModule來(lái)加載mod_dav_svn模塊。

            將:

            #LoadModule dav_module modules/mod_dav.so

            改成:

            LoadModule dav_module modules/mod_dav.so

            即去掉前面的“#”號(hào)。

            添加:

            LoadModule dav_svn_module modules/mod_dav_svn.so

            一定確定它在 mod_dav 之后。

            現(xiàn)在你已經(jīng)設(shè)置了Apache和Subversion,但是Apache不知道如何處理Subversion客戶端,例如TortoiseSVN。為了讓Apache知道哪個(gè)目錄是用來(lái)作為Subversion版本庫(kù),你需要使用編輯器(例如記事本)編輯Apache的配置文件。

            在配置文件最后添加如下幾行:

            <Location /repository/>
              DAV svn
              SVNPath e:/svn/repos1
            </Location>

            這個(gè)配置告訴Apache首先需要啟用 dav_module,然后加載 dav_svn_module 。版本庫(kù)對(duì)外的URL是:http://服務(wù)器IP/repository/ ,所有的Subversion版本庫(kù)在物理上位于e:/svn/repos1/ 。

            配置完畢后重新啟動(dòng) Apache,打開(kāi)瀏覽器,輸入 http://服務(wù)器IP/ repository/ 將會(huì)看到如下畫(huà)面:

            這表示 Apache 的 dav_svn 模塊已經(jīng)可以正常工作了。用戶可以使用任何一種 Subversion 的客戶端通過(guò) Http 協(xié)議訪問(wèn)你的版本庫(kù)。

            如果想要指定多個(gè)版本庫(kù),可以用多個(gè) Location 標(biāo)簽,也可以使用 SVNParentPath 代替 SVNPath,例如在 e:\svn 下有多個(gè)版本庫(kù) repos1,repos2 等等,用如下方式指定:

            <Location /repository/>
             DAV svn
             SVNParentPath e:/svn
            </Location>

            “SVNParentPath e:/svn ” 表示 e:\svn 下的每個(gè)子目錄都是一個(gè)版本庫(kù)。可以通過(guò) http://服務(wù)器IP/repository/repos1/,http://服務(wù)器IP/repository/repos2/ 來(lái)訪問(wèn)。

            現(xiàn)在你的版本庫(kù)任何人都可以訪問(wèn),并且有完全的寫(xiě)操作權(quán)限。也就是說(shuō)任何人都可以匿名讀取,修改,提交,以及刪除版本庫(kù)中的內(nèi)容(注:這時(shí)不需要配置E:\svn\repos\conf\svnserve.conf 文件,并且也不需要啟動(dòng)E:\subversion\bin\svnserve.exe。因?yàn)樘峤皇峭ㄟ^(guò)Apache的dav模塊處理的,而不是由svnservice處理。)。我們用 TortoiseSVN 客戶端驗(yàn)證即知。

            顯然大部分場(chǎng)合這是不符合需求的。那么如何進(jìn)行權(quán)限設(shè)置呢,Apache 提供了基本的權(quán)限設(shè)置:

             

            四、認(rèn)證選項(xiàng)

            1、基本 HTTP 認(rèn)證

            最簡(jiǎn)單的客戶端認(rèn)證方式是通過(guò) HTTP 基本認(rèn)證機(jī)制,簡(jiǎn)單的使用用戶名和密碼來(lái)驗(yàn)證一個(gè)用戶的身份。Apache提供了一個(gè) htpasswd 工具來(lái)管理一個(gè)用戶文件,這個(gè)文件包含用戶名和加密后的密碼,這些就是你希望賦予 Subversion 特別權(quán)限的用戶。htpasswd 可以在 Apache 的 bin 安裝目錄下找到。具體使用方法如下:

            創(chuàng)建用戶文件:
            htpasswd -c E:\usr\Apache2.2\bin\passwd.conf username

            添加新用戶(-m 表示以 MD5 加密密碼,可選項(xiàng)):
            htpasswd [-m] E:\usr\Apache2.2\bin\passwd.conf Newusername

            更改用戶密碼:
            htpasswd [-m] E:\usr\Apache2.2\bin\passwd.conf username

            刪除用戶(要用大寫(xiě)的 D ):
            htpasswd –D E:\usr\Apache2.2\bin\passwd.conf username

            接下來(lái)修改 httpd.conf,在 Location 標(biāo)簽中加入如下內(nèi)容:

            AuthType Basic
            AuthName "svn repos"
            AuthUserFile E:/usr/Apache2.2/bin/passwd.conf
            Require valid-user

            說(shuō)明:

            AuthType Basic:?jiǎn)⒂没镜尿?yàn)證,比如用戶名/密碼對(duì)。

            AuthName "svn repos":當(dāng)一個(gè)認(rèn)證對(duì)話框彈出時(shí),出現(xiàn)在認(rèn)證對(duì)話框中的信息。(最好用英文,TortoiseSVN 不支持中文,安裝語(yǔ)言包除外。)

            AuthUserFile E:/usr/Apache2.2/bin/passwd:指定E:\usr\Apache2.2\bin\passwd為用戶文件,用來(lái)驗(yàn)證用戶的用戶名及密碼。

            Require valid-user:限定用戶只有輸入正確的用戶名及密碼后才能訪問(wèn)這個(gè)路徑

             

            重新啟動(dòng) Apache ,打開(kāi)瀏覽器訪問(wèn)版本庫(kù)。Apache 會(huì)提示你輸入用戶名和密碼來(lái)認(rèn)證登陸了,現(xiàn)在只有 passwd 文件中設(shè)定的用戶才可以訪問(wèn)版本庫(kù)。也可以配置只有特定用戶可以訪問(wèn),替換上述 "Require valid-user" 為 "Require user tony robert" 將只有用戶文件中的 tony 和 robert 可以訪問(wèn)該版本庫(kù)。

            有的時(shí)候也許不需要這樣嚴(yán)格的訪問(wèn)控制,例如大多數(shù)開(kāi)源項(xiàng)目允許匿名的讀取操作,而只有認(rèn)證用戶才允許寫(xiě)操作。為了實(shí)現(xiàn)更為細(xì)致的權(quán)限認(rèn)證,可以使用 Limit 和 LimitExcept 標(biāo)簽。例如:

            <LimitExcept GET PROPFIND OPTIONS REPORT>
              require valid-user
            </LimitExcept>

            以上配置將使匿名用戶有讀取權(quán)限,而限制只有 passwd 中配置的用戶可以使用寫(xiě)操作。

            如果這還不能滿足你的要求,你希望精確的控制版本庫(kù)目錄訪問(wèn),可以使用 Apache 的 mod_authz_svn 模塊對(duì)每個(gè)目錄進(jìn)行認(rèn)證操作。

             

             

            2、用 mod_authz_svn 進(jìn)行目錄訪問(wèn)控制

            首先需要讓 Apache 將 mod_authz_svn 模塊加載進(jìn)來(lái)。在 Subversion 的安裝目錄中找到 mod_auth_svn 模塊,將其拷貝到 Apache 安裝目錄的 modules 子目錄下。修改 httpd.conf 文件,添加:

            LoadModule authz_svn_module modules/mod_authz_svn.so

            現(xiàn)在可以在 Location 標(biāo)簽中使用 authz 的功能了。一個(gè)基本的 authz 配置如下:

            <Location /repository/>
              DAV svn
              SVNParentPath e:/svn

              # our access control policy
              AuthzSVNAccessFile E:/usr/Apache2.2/bin/accesspolicy.conf

              # try anonymous access first, resort to real
              # authentication if necessary.
              Satisfy Any
              Require valid-user

              # how to authenticate a user
              AuthType Basic
              AuthName "Subversion repository"
              AuthUserFile E:/usr/Apache2.2/bin/passwd.conf
            </Location>

            AuthzSVNAccessFile 指向的是 authz 的策略文件,詳細(xì)的權(quán)限控制可以在這個(gè)策略文件中指定。訪問(wèn)文件 accesspolicy.conf 的語(yǔ)法與svnserve.conf和 Apache 的配置文件非常相似,以(#)開(kāi)頭的行會(huì)被忽略;在它的簡(jiǎn)單形式里,每一小節(jié)命名一個(gè)版本庫(kù)和一個(gè)里面的路徑;認(rèn)證用戶名是在每個(gè)小節(jié)中的選項(xiàng)名;每個(gè)選項(xiàng)的值描述了用戶訪問(wèn)版本庫(kù)的級(jí)別:r(只讀)或者rw(讀寫(xiě)),如果用戶沒(méi)有提到或者值留空,訪問(wèn)是不允許的; * 表示所有用戶,用它控制匿名用戶的訪問(wèn)權(quán)限;@符號(hào)區(qū)分組和用戶。如:

            [groups]
            committers = paulex, richard
            developers = jimmy, michel, spark, sean

            [/]
            * = r
            @committers = rw

            [/branches/dev]
            @developers = rw

            [/tags]
            tony = rw
            [/private]
            * =
            @committers= r
             

            使用 SVNParentPath 代替 SVNPath 來(lái)指定多個(gè)版本庫(kù)的父目錄時(shí),其中所有的版本庫(kù)都將按照這個(gè)策略文件配置。例如上例中 tony 將對(duì)所有版本庫(kù)里的 /tags 目錄具有讀寫(xiě)權(quán)限。如果要對(duì)具體每個(gè)版本庫(kù)配置,用如下的語(yǔ)法:

            [groups]
            project1_committers = paulex, richard
            project2_committers = jimmy, michel, spark, tony, Robert

            [repos1:/]
            * = r
            @ project1_committer = rw

            [repos2:/]
            * = r
            @ project2_committer = rw
             

            這樣項(xiàng)目1的 project1_committer 組只能對(duì) repos1 版本庫(kù)下的文件具有寫(xiě)權(quán)限而不能修改版本庫(kù) repos2 ,同樣項(xiàng)目2的 project2_commiter 組也不能修改 repos1 版本庫(kù)的文件。

             

             

            4、FAQ

            1、路徑或權(quán)限不足時(shí)將出現(xiàn)錯(cuò)誤信息提示:

            http://localhost (路徑不對(duì))
            Error * PROPFIND request failed on '/' PROPFIND of '/': 200 OK (http://localhost)

            http://localhost/svn (權(quán)限不足)
            Error * PROPFIND request failed on '/svn' PROPFIND of '/svn': 403 Forbidden (http://localhost)

            http://localhost/svn/repos (正常顯示)

            http://localhost/repos (權(quán)限不允許)
            Error * PROPFIND request failed on '/repos' PROPFIND of '/repos': 405 Method Not Allowed (http://localhost)

             

             

            2、不啟動(dòng)E:\subversion\bin\svnserve.exe ,但啟動(dòng)了ApacheSVN ,訪問(wèn)(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:

            現(xiàn)象:svn://localhost/svn/repos 不能訪問(wèn)或提交,提示:Error * Can't connect to host 'localhost': 由于目標(biāo)機(jī)器積極拒絕,無(wú)法連接。 但 file:///e:/svn/repos 和 http://localhost/svn/repos 可以訪問(wèn)或提交。

            原因:svn:// 是獨(dú)立服務(wù)器 svnserver 自己的協(xié)議。file:/// 是本地訪問(wèn),即服務(wù)器端和客戶端在一個(gè)機(jī)器上。

             

             

             

             

            參考資料:
            Subversion 官方網(wǎng)站:Subversion 的官方網(wǎng)站,提供最權(quán)威的介紹和最新的下載。
            Subversion 中文手冊(cè):Subversion 簡(jiǎn)體中文官方網(wǎng)站翻譯的中文手冊(cè)。
            TortoiseSVN 中文文檔:Subversion 簡(jiǎn)體中文官方網(wǎng)站翻譯的 TortoiseSVN 中文文檔。
            我用SVN中文論壇:國(guó)內(nèi)人氣非常旺的 SVN 中文交流論壇。
            用Apache和Subversion搭建安全的版本控制環(huán)境》:IBM 工程師寫(xiě)的基于 Linux 的 SVN 教程。
            百度百科:由全體網(wǎng)民共同撰寫(xiě)的百科全書(shū)

             

             

            ~ 全文完~

             

                      印第安

                  2007年12月23日23:37:41 v1.0 初稿
                  2007年12月25日2:24:53 v1.1 更新。更改了幾處路徑,使之更加便于Win下調(diào)試。全文重新排版,閱讀條理更清晰。
                  2008年1月24日11:45:35 v1.2 修訂。修改幾處書(shū)寫(xiě)錯(cuò)誤(謝謝山東濟(jì)南的網(wǎng)易博友242);修改1個(gè)關(guān)鍵配置路徑。

            posted on 2008-10-28 10:51 聶文龍 閱讀(604) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Visual C++軟件應(yīng)用
            久久精品中文字幕第23页| 久久精品国产99久久香蕉| 久久综合九色欧美综合狠狠| 久久亚洲精品国产精品| 91麻豆国产精品91久久久| 久久久久久国产精品无码下载| 韩国三级大全久久网站| 久久狠狠高潮亚洲精品| 亚洲午夜无码久久久久| 亚洲中文字幕无码一久久区 | 久久狠狠爱亚洲综合影院| 色综合久久88色综合天天 | 久久最新免费视频| 久久久久久久国产免费看| 国产精品成人99久久久久91gav| 精品久久久久久国产91| 亚洲国产精久久久久久久| 日本久久久精品中文字幕| 一本久久a久久精品综合夜夜| 国产精品99久久久久久董美香| 国产亚洲婷婷香蕉久久精品| 国内精品久久九九国产精品| 99久久精品无码一区二区毛片 | 99国产欧美久久久精品蜜芽| 国内精品伊人久久久久AV影院| 国内精品久久久久影院日本| 久久精品国产91久久麻豆自制| 久久久91精品国产一区二区三区 | 亚洲AV无码久久精品成人 | 人人狠狠综合久久亚洲88| 国产L精品国产亚洲区久久| 久久久久国产视频电影| 伊人情人综合成人久久网小说 | 无遮挡粉嫩小泬久久久久久久| 久久久久久国产精品无码超碰| 久久本道伊人久久| 青青草国产97免久久费观看| 亚洲欧美日韩中文久久| 久久青草国产精品一区| 亚洲国产成人久久综合碰| 久久久无码一区二区三区|