SVN服务器简单安装


检查并安装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


你可能感兴趣的:(SVN简单部署)