使用Linux(CentOS)搭建SVN服务器全攻略
安装
#yum install subversion
创建目录
mkdir -p /home/svnroot/svndata/repos1 加上参数P,是如果没有父目录则自动创建 注意: /home/svnroot/svndata在这里将是所有仓库的根目录,repos1是其中的一个仓库。
创建仓库
svnadmin create /home/svnroot/svndata/repos1 这里使用SVN将repos1建立为仓库。则在repos1文件夹里会生成一系列对于repos1仓库相应的配置文件
查看创建仓库后的文件
进入/svndata/repos1/conf,会发现有几个配置文件
修改svnserve.conf
vi svnserve.conf 打开这个配置文件,可以看到很多配置项已经注释掉了,只需要按下面这几项修改就可以了 [general] anon-access = none auth-access = write password-db = passwd authz-db=authz
目录控制文件authz (or叫权限控制文件)
vi authz 默认是没有配置的,要参照下面示例来配置 [groups] admin = svnadmin [repos1:/] @admin = rw svnadmin = rw 上面的配置权限控制文件的配置格式如下: [groups] <用户组名> = <用户1>,<用户2>, …… [<版本库>:/项目/目录] @<用户组名> = <权限> <用户名> = <权限> 其中,方框号内部分可以有多种写法: /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnadmin/svndata。这样,/就是表示对全部版本库设置权限。 repos1:/,表示对版本库1设置权限 repos2:/occi,表示对版本库2中的occi项目设置权限 repos2:/occi/aaa,,表示对版本库2中的occi项目的aaa目录设置权限 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
修改用户密码文件passwd
vi passwd 默认也是没有配置任何用户的,可按下面配置示例配置 [users] svnadmin = 123456 用户密码的配置格式: [users] <用户1> = <密码1> <用户2> = <密码2> 注意:这里的配置文件,除了注释外每行都必须顶行,否则又会报错了。
启动SVN
svnserve -d -r /home/svnadmin/svndata -d表示在后台运行,-r表示…… 注意:这里是/home/svnadmin/svndata,并非/home/svnadmin/svndata/repos1。这是SVN使所有仓库根目录都生效的命令,并非某个仓库。这里必须注意。
基本测试
svn co svn://192.168.6.74/repos1 checkout的时候,会要求输入用户名密码,只有配置了的用户才能验证通过