yum安装subversion
查看安装版本
查看安装位置
创建版本库
创建用于存放版本库的目录
创建svn版本库
svnadmin create /usr/local/svn
创建完后,版本库目录下会生成一些文件,进入conf目录下。conf目录中authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf是SVN服务配置文件
创建用户
修改passwd文件,加入用户,格式就是“用户名 = 密码”,如: admin = 123
设置用户读写权限
修改authz文件,加入用户权限: 备注: 格式为 账户=权限 rw权限为读.写 , r权限为读
修改svnserver配置文件,启用以上用户和权限设置
svnserve.conf
anon-access = read #匿名用户可读 此项一般不推荐启用. 启用后会导致SVN checkout时不用输入用户密码
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm =My First Repository # 认证空间名,版本库所在目录
启动svn服务
svnserve -d -r /usr/local/svn
-r的作用是设置根目录路径,访问svn://x.x.x.x/就能直接到版本库内
svnserver默认端口是3690,需要配置防火墙端口和安全组
TortoiseSVN连接
注意事项:
通常启动SVN服务,仅指定SVN版本库的根目录,如下:
svnserve -d -r /usr/local/svn
然后在/usr/local/svn下创建多个版本库:
cd /usr/local/svn
svnadmin create repos1
svnadmin create repos2
这个时候需要再依次配置repos1和repos2等版本库下的conf/svnserve.conf、conf/passwd、conf/authz文件。
问题便来了,因为大多数的时候,同一个用户需要用相同的帐号和密码去访问不同的版本库,这时的权限配置就不好处理了,以前看其他人的解决方法是在svnserve.conf中指定passwd和authz的路径时用相对路径指到同一个文件。这是一个可行的方法,但新增版本库的时候,就得更改svnserve.conf文件,不方便。
svnserve -h
有一个—config-file参数,这个参数就是用来指定svnserve.conf路径的
只要在启动SVN服务的时候,指定—config-file参数,只要指定了此参数,所有的权限都由参数指定的svnserve.conf控制,而每个版本库conf目录下的svnserve.conf的配置都会忽略掉。
svnserve -d -r /usr/local/svn —config-file /usr/local/svn/conf/svnserve.conf
Authorization failed
出现authorization failed异常,一般都是authz文件里,用户组或者用户权限没有配置好,只要设置[/]就可以,代表根目录下所有的资源,如果要限定资源,可以加上子目录即可
客户端连接
创建版本库
右键 create folder
注意不要使用中文目录
svn add
svn commit

svn有两种存储方式:BDB和FSFS,目前用的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以版本号命名的文件,如:0、1、2、3、4……,那个就是了
服务启动问题
svnserve: E000098: Can’t bind server socket: Address already in use
解决办法一:
killall svnserve
svnserve -d -r /usr/local/svn —config-file /usr/local/svn/conf/svnserve.conf
解决方法二:
启动另一个端口:
svnserve -d -r /usr/local/svn-repo-test —listen-port 3691

