写在前面的话:
p.s.有必要读一读,不然可能会浪费你的时间。
该篇是接着上一篇的,上一篇是看了很多人写的文章,汇总的一些可能的情况,最后还是没有成功。此篇是在一个同学的帮助下成功的,也是在自己做好的基础上写的。应该都是对的,如果你发现你按照我写的来,结果发现不对,请见谅,每个人的机器的情况毕竟不一样,而且linux上面一个小的配置不对,都有可能导致我们使用不了。
1、在有网络的情况下: 用#yum -y install subversion (无网络情况下,安装随后补充)
检查是否安装完成 #svn --version
显示有版本号及说明安装成功
2、 新建一个目录用于存储SVN所有文件
# mkdir /var/svn
3、 新建一个资源仓库
# svnadmin create /var/svn/project
目录用途说明:
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)
4、修改conf目录下的三个文件(下面这三个文件是我传出来后,用EditPlus打开的,方便看得清楚一些)
▶文件passwd
[root@localhost conf]# vi passwd
注意:对用户配置文件的修改立即生效,不必重启svn服务。
▶文件authz
[root@localhost conf]# vi authz
格式说明:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
/ 表示对根目录(即/svn/project目录)下的所有子目录范围设置权限;
[/abc] 表示对资料库中abc项目设置权限;
创建一个admin组,组成员包括xiaoran.shen和test1
创建一个user组,成员只有test2;
admin组对目录有读写权限;
单个用户test2有读写权限;
*=表示除了上面设置的权限用户组以外,其他所有用户都设置空权限,空权限表示禁止访问本目录,这很重要一定要加上。
如果想设置某用户都没有rw的权限,只要=号的右边这空即可如
sai=
注意:对权限配置文件的修改立即生效,不必重启svn。
▶文件svnserve.onf
[root@localhost conf]# vi svnserve.conf
配置项分为以下5项:
anon-access 控制非鉴权用户访问版本库的权限。
auth-access 控制鉴权用户访问版本库的权限。
password-db 指定用户名口令文件名。
authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
5、启动svn服务
[root@localhost project1]# svnserve -d -r /svn/project1/
注意:不要使用系统提供的 /etc/init.d/svnserve start 来启动,因为系统默认的启动脚本中没有使用 –r /svn/project参数指定一个资源。这种情况下启动的svn服务,客户端连接会提示“svn: No repository found in 'svn://192.168.11.229/project' ”这样的错误。
默认svn服务器端口是3690。
杀死svn服务:
# ps -ef |grep svn
root 4642 1 0 16:08 ? 00:00:00 svnserve -d -r /svn/project/
root 4692 3676 0 16:13 pts/2 00:00:00 grep svn
# kill -9 4642
6、checkout(checkout=co)
注:这是没有修改配置文件的时候,直接checkout出来了。
有关连接:
http://my.oschina.net/lionel45/blog/298305