搭建的文章很多了,这里先不整理,今天主要做了一下SVN服务器的配置。
第一:用户的配置
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 文件,特别是一些处理文本的软件,如 PHP、 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 的。