检查并安装SVN
rpm -qa subversion
yum install subversion
===================================================================
创建svn数据目录
mkdir -p /application/svndata
mkdir -p /application/svnpasswd
===================================================================
启动SVN
svnserve --help
svnserve -d -r /application/svndata/
===================================================================
检查SVN是否正常启动
ps -ef | grep svn
netstat -lnt |grep 3690
netstat -lntup |grep 3690
lsof -i :3690
===================================================================
创建svn的项目实例(svn版本库)
mkdir /application/svndata/sadoc1
svnadmin help ##查看svnadmin帮助文件 svnadmin help create
tree /application/svndata
svnadmin create /application/svndata/sadoc1 #在上面创建的svn数据目录下,创建项目
ll /application/svndata/
tree /application/svndata/sadoc1/
===================================================================
修改项目配置文件(权限问题)
方法1
cd /application/svndata/sadoc1/conf/
cp svnserve.conf.ori /application/svndata/sadoc1/conf/svnserve.conf
sed -i 's/# anon-access = read/anon-access = none/g' /application/svndata/sadoc1/conf/svnserve.conf
sed -i 's/# auth-access = write/auth-access = write/g' /application/svndata/sadoc1/conf/svnserve.conf
sed -i 's/# password-db = passwd/password-db = \/application\/svnpasswd\/passwd/g' /application/svndata/sadoc1/conf/svnserve.conf
sed -i 's/# authz-db = authz/authz-db = \/application\/svnpasswd\/authz/g' /application/svndata/sadoc1/conf/svnserve.conf
方法2
[root@centos conf]# vim svnserve.conf
修改的内容如下:
12 anon-access = none
13 auth-access = write
20 password-db = /application/svnpasswd/passwd #这样修改的目的是便于统一管理,以后所有的项目密码都放在这个目录下
27 authz-db = /application/svnpasswd/authz #这样修改的目的是便于统一管理,以后所有的项目认证都放在这个目录下了
===================================================================
检查配置文件修改的内容
egrep -v "#|^$" /application/svndata/sadoc1/conf/svnserve.conf
diff /application/svndata/sadoc1/conf/svnserve.conf /application/svndata/sadoc1/conf/svnserve.conf.ori
===================================================================
创建svn独立密码和认证文件
方法1
cd /application/svnpasswd/
cp /application/svndata/sadoc1/conf/passwd /application/svndata/sadoc1/conf/authz /application/svnpasswd/
echo -e "zhang = lvnian\nlvnian01 = lvnian" >> /application/svnpasswd/passwd
echo -e "[sadoc1:/]\nzhang = rw\nlvnian01 = rw" >>/application/svnpasswd/authz
====================================
方法2
cd /application/svnpasswd/
修改密码文件
[root@centos svnpasswd]# tail -5 /application/svnpasswd/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
zhang = lvnian
lvnian01 = lvnian
[root@centos svnpasswd]#
修改认证文件
[root@centos svnpasswd]# tail -5 /application/svnpasswd/authz
# @harry_and_sally = rw
# * = r
[sadoc1:/]
zhang = rw
lvnian01 = rw
==================================================================
启动
svnserve -d -r /application/svndata/
关闭svn
kill -9 `ps -ef |grep svn|grep -v grep|awk '{print $2}'`
#################################################################
#################################################################
配置文件说明
[root@SVN svnpasswd]# cat authz
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[sadoc1:/]
zhang = rw
qiong = rw
[root@SVN svnpasswd]#
===============
上面是svn的权限配置文件,
注意:
权限配置文件中出现的用户名必须要在用户配置文件中出现,也就是必须要在passwd 文件中定义。
对权限配置文件的修改使立刻生效的,不必重启svn服务器
用户组格式:
[groups]
组名 = username1,username2,username3,...
其中,1个用户组可以包含一个或多个用户,用户和用户之间用逗号分隔
版本库目录
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户组> = <权限>
其中,方框内部分有多种写法
[/],表示根目录及根目录下面的目录,根目录是svnserve启动时指定的,我们指定为/application/svndata,[/]就表示对全部版本库设置权限。
[repos:/]表示对版本库repos设置权限
[repos:/sadoc]表示对版本库repos中的sadoc项目设置权限;
[repos:/sadoc]/lvnian]表示对版本库repos中的sadoc项目的lvnian目录设置权限;
权限主体可以是用户组、用户和*,用户组在前面需要加@,*表示全部用户
authz中每个参数都要顶格写,开头不能有空格
对于组,必须要以@开头加组名,用户则不需要加@开头
#################################################################
#################################################################
客户端下载地址:
http://tortoisesvn.net/downloads.html
在windows中下安装就一路下一步安装。即可
svn客户端连接服务器的方法,账号及密码:
svn://IP/svn项目名称
如
svn://ip/sadoc1
用户名:lvnian01
密码:lvnian