Evan's Blog

          Java, software development and others.

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            28 隨筆 :: 0 文章 :: 73 評論 :: 0 Trackbacks

          SVN可以配置多種方式進行訪問,但在公司內(nèi)部搭建的svn服務(wù)器,如果僅僅在局域網(wǎng)里訪問的話,總感覺用svn協(xié)議要比http協(xié)議來得效率高些,所以,一般總是用svnserve來啟動svn的服務(wù)。一般而言,如果是從svn 1.2或1.3的版本開始使用的人,總以為svn協(xié)議只能配置到倉庫的權(quán)限控制,而不能針對目錄進行權(quán)限控制,即使看到其authz示例文件中有如下的內(nèi)容:

          #? [ repository:/baz/fuz ]
          #?@harry_and_sally?
          = ?rw
          #?*?
          = ?r

          但謹守其自帶文檔Chapter 6中關(guān)于svnserve一節(jié)的教導(dǎo):

          Notice that svnserve only understands “blanket” access control. A user either has universal read/write access , universal read access, or no access. There is no detailed control over access to specific paths within the repository. For many projects and sites , this level of access control is more than adequate. However , if you need per-directory access control , you'll need to use either use Apache with mod_authz_svn (see the section called “Per-Directory Access Control”) or use a pre-commit hook script to control write access (see the section called “Hook Scripts”).

          一般還是不會多去研究,只當作是結(jié)合Apache來進行面向目錄的權(quán)限控制文件示例。

          其實,心里一直對這種方式有個小疙瘩,最近又要開一個新項目的代碼庫,雖然實際上對代碼的訪問控制也沒有特別的要求,但心想既然authz文件里有關(guān)于目錄的設(shè)置,是不是能嘗試一下,用svnserve也能進行目錄權(quán)限的控制呢。于是到網(wǎng)上搜了一下,omg,這個功能竟然早在1.3的時候就已經(jīng)實現(xiàn)了,對其詳盡而完整的描述來自Michael的這篇Subversion之路--實現(xiàn)精細的目錄訪問權(quán)限控制?,其中的幾個要點包括:
          ??? 1. svnserve支持面向目錄的訪問控制了;
          ??? 2. 權(quán)限具備繼承性,所以需要用"* = "的形式來禁止未授權(quán)的用戶訪問特定子目錄;
          ??? 3. svn 1.3.2及以后的版本允許對子目錄進行操作而無需父目錄的讀權(quán)限;
          ??? 4. 如果是中文目錄的話,authz必須以utf-8的格式保存,且不能帶BOM,而windows自帶的記事本按utf-8保存的文件則會加上BOM,所以,如果你以utf-8格式保存好后,提交代碼時,svn報"section header expected"的錯時,則多半是帶BOM的。當然現(xiàn)在很多編輯器都能很方便的轉(zhuǎn)換了,如ultraedit的保存為U8-DOS,editplus保存為utf-8,以及開源的Notepad++的格式轉(zhuǎn)換中的“轉(zhuǎn)換為utf-8碼(無BOM)”等都可以完成這個工作。

          無論如何,這總算解開了我心中的一個小疑團,所以,即使軟件自帶的文檔,往往也不是絕對的權(quán)威(叫我還能相信誰:-( ,在svn 1.4.2版本中帶的文檔,還是針對1.3的)。不過Subversion Book網(wǎng)站上提供的針對svn 1.4的nightly版本已經(jīng)很明確的講解了這一部分的內(nèi)容了。

          posted on 2007-04-01 14:33 Evan 閱讀(3289) 評論(1)  編輯  收藏 所屬分類: SE筆記

          評論

          # re: 關(guān)于svnserve的權(quán)限控制 2007-04-04 19:48 HD
          呵呵,被呼有的感覺爽罷 :)  回復(fù)  更多評論
            

          主站蜘蛛池模板: 连云港市| 疏勒县| 土默特左旗| 铁力市| 太仓市| 麻江县| 安庆市| 枝江市| 乌兰县| 托里县| 洛阳市| 胶州市| 京山县| 苍梧县| 黔江区| 神农架林区| 会泽县| 平乐县| 柳河县| 娄烦县| 丁青县| 桓台县| 弥勒县| 卢湾区| 丹寨县| 邯郸市| 九寨沟县| 高安市| 宾阳县| 曲周县| 德化县| 田阳县| 民勤县| 巴林右旗| 荣成市| 石泉县| 延边| 罗城| 台中县| 元朗区| 秦安县|