第一:用戶的配置
SVN和apache整合的話,用戶可以直接使用htpasswd dav_svn.passwd_file_address USERNAME來配置。
而賬戶的管理可以用dav_svn.authz來配置
前面那個passwd文件保存的是用戶的基本信息,就不列了。而另外那個dav_svn.authz文件的內容如下:
- [aliases]
- # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
- [groups]
- sendsrt = root,utt1
- sendsdeveloper = ttt12
- other = seb3
- [/]
- @sendsrt = rw
- * =
- [test:/]
- @sendrt = rw
- ttt12 =rw
- * =
- [utt1:/]
- @sendsrt = rw
- utt1 = rw
- * =
- [utt1:/testProject]
- @sendsdeveloper = rw
實際上,上面的這個文本已經基本說明了用戶權限配置的情況了。[groups]里面表示的是分組信息,每個組=用戶
而下面的[/]表示的是整個SVN的所有庫,因為我在apache下面訪問的時候的做過別名,所以是http://localhost/svn/
[test:/]表示的就是test這個庫和相對這個庫的根目錄,實際上代表的是http://localhost/svn/test/
[utt1:/testProject]其實utt1這個庫有地方說的就是這里,http://localhost/svn/utt1/testProject目錄,這里控制了sendsdeveloper組成員僅對這個目錄具有讀寫權限。不像http://www.subversion.org.cn/bbs/viewthread.php?tid=520這篇文章的作者的血淚經驗,實際上,這樣的目錄設置是通過了我自己的測試的,這個標志代表的是相對於utt1這個版本庫目錄下的testProject目錄,而那位作者有了問題恐怕是在於他自己簽入簽出庫的時候使文件夾出了問題吧。
權限上,r,w分別表示讀寫,下面那個* = 表示除了上面寫的之外,都沒有任何權限,因為svn的目錄權限也是繼承的,如果不禁的話,父目錄有權限的話,子目錄會自動繼承。另外,這個 *=在一個庫的權限設置里面放在第一行和最后一行是沒有區別的。
另外,還需注意的是,即時在Windows下,設置這個也必須使用/而非/。
最后,如果要配置SVN下的中文支持的話,請參考這一段:
- 對中文目錄的支持
- ----------------
- 上午上班的時候,Morson 來到 Michael 的桌子前面,說道:“你是否可以將我們的北京辦、上海辦目錄,改成用中文的,看着那些拼音我覺得很難受?” Michael 心想,還好這兩天剛了解了一些與 unicode 編碼相關的知識,於是微笑地回答:“當然可以,你明天下午就可以看到中文目錄名稱了。”
- 1. 使用 svn mv 指令,將原來的一些目錄改名並 commit 入代碼庫,改名后的目錄結構如下::
- arm
- ├─工作日志
- │ ├─總部人員
- │ ├─北京辦
- │ └─上海辦
- ├─公司公共文件參考目錄
- └─臨時文件存放處
- 2. 修改代碼庫的 authz.conf 文件,將相應目錄逐一改名
- 3. UTF-8 格式的 authz.conf 文件,以及 BOM
- 將配置文件轉換成 UTF-8 格式之后,Subversion 就能夠正確識別中文字符了。但是這里需要注意一點,即必須保證 UTF-8 文件不包含 BOM 。BOM 是 Byte Order Mark 的縮寫,指 UNICODE 文件頭部用於指明高低字節排列順序的幾個字符,通常是 ``FF FE`` ,而將之用 UTF-8 編碼之后,就是 ``EF BB BF`` 。由於 UTF-8 文件本身不存在字節序問題,所以對 UTF-16 等編碼方式有重大意義的 BOM,對於 UTF-8 來說,只有一個作用——表明這個文件是 UTF-8 格式。由於 BOM 會給文本處理帶來很多難題,所以現在很多軟件都要求使用不帶 BOM 的 UTF-8 文件,特別是一些處理文本的軟件,如 <a href="http://lib.csdn.net/base/php" class='replace_word' title="PHP知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>PHP</a>、 UNIX 腳本文件等,svn 也是如此。
- 目前常用的一些文本編輯工具中,MS Windows 自帶的“記事本”里面,“另存為”菜單保存出來的 UTF-8 格式文件,會自動帶上 BOM 。新版本 UltraEdit 提供了選項,允許用戶選擇是否需要 BOM,而老版本的不會添加 BOM。請各位查看一下自己常用的編輯器的說明文件,看看它是否支持這個功能。
- 對於已經存在 BOM 的 UTF-8 文件,比如說就是微軟“記事本”弄出來的,我們可以利用 UltraEdit 來將 BOM 去掉。方法是,首先利用“UTF-8 TO ASCII”菜單將文件轉換成本地編碼,通常是GB2312碼,然后再使用“ASCII TO UTF-8(UNICODE Editing)”來轉換到 UTF-8 即可。當然,這么操作之前,你肯定得先保證,你的 UltraEdit 保存出來的 UTF-8 文件的確是不帶 BOM 的。
