由于工作的需要,针对几十上百家券商都在不停的提出需求,更改软件及配置,软件、需求、文档管理及其混乱,也方便自己部门员工周报的提交,减少邮件来往查询的麻烦,自己特地部署了个svn服务器,共我们小组自己使用。主要的是要做中文权限目录的设置,svn对中文支持的不怎么好,也实现了。
 
一、svn相关知识介绍
      subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
      svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。此文是独立的svn服务器。
      svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式更安全一点。
 
二、软件信息
software:subversion-deps-1.6.16.tar.gz 、subversion-1.6.16.tar.gz
os: redhat 5.4
ip:192.168.0.85
download_url :
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=10339&expandFolder=10339&folderID=0
svn_data_dir=/opt/svndata/repos
 
三、安装部署
#tar xzvf subversion-1.6.16.tar.gz
#tar xzvf subversion-deps-1.6.16.tar.gz
\\ 一定要找相同版本的开发支持包,否则会出现意想不到的问题。而且开发支持包解压后会自动和subversion程序合并成一个包。如果没有deps这个包,我编译的时候会报apr缺少的错误。
#cd subversion-1.6.16
#./configure --prefix=/usr/local/svn 
 
\\ 网上要加上-- without-berkeley-db 才能使用FSFS数据库,其实不用添加,默认就是FSFS数据库了。
 
 
 
说明:
       目前没有设置全局环境变量,svn的相关命令都是在/usr/local/svn/bin/下,下面的命令就略写路径了。
1、创建版本库
#svnadmin create /opt/svndata/repos/qs 
 会生产qs目录,并且目录下会出现若干目录。
2、版本库下目录说明
  conf目录下会有
   | -- authz  目录权限设置的
   | -- passwd  用户名和用户密码设置的
   | -- svnserve.conf  svn的配置文件
3、svnserve.conf文件配置
[general]
anon-access = none  匿名用户不能弄访问
auth-access = write 认证用户可写
password-db = passwd 密码文件
authz-db = authz     认证存储文件
注意: 所有配置语句必须顶格写,否则会出错。
4、passwd文件配置
[users]
harry = harryssecret
sally = sallyssecret
注意: 全部顶格写
5、authz 权限配置
说明: 就是将你的权限控制文件的格式转换为无BOM的UTF-8格式,或者说将权限文件改成UTF-8格式,我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。这只是一个条件,在中文目录权限控制中 *=rw ,“*”的写法是不起作用的,这是我自己试验的结果。

[qs:/]
@mobile_tse = rw
* = r
[qs:/trunk]
* = rw
[qs:/trunk/管理]
#@mobile_sa = r
#@mobile_test = r
@mobile_pm = r
* = rw
说明:像管理这个目录,改完字符编码后原则上@mobile_pm = r 是只能读的,但是有了*=rw后,@mobile_pm = r 就不起作用了。必须一个组一个组的去定义才可以。

配置的含义我就不多写了,网上很多。
 
 
6、服务启动、停止
svnserve -d -r /opt/svndata/repos  \\启动
ps -ef |grep svn|grep -v grep|awk '{print $2}'|xargs kill -9  \\停止
 
 
环境变量设置
SVN_PATH=$PATH:/usr/local/svn/bin
export SVN_PATH