SVN简介:

SVN是一个开源的版本控制系统,SVN管理着随时间改变的数据。这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的改动。

系统环境:

主机 操作系统 IP地址
SVN Server CentOS 7.4 x86_64 192.168.100.135
client CentOS 7.4 x86_64 192.168.100.140

搭建SVN服务器步骤如下:

1.关闭防火墙及Selinux

setenforce 0
systemctl stop firewalld

2.Yum安装svn软件包

yum install subversion -y

查看版本

svnserve --version

3.创建仓库repo

mkdir -p /opt/svn/repo #创建目录
svnadmin create /opt/svn/repo #创建一个新的仓库

4.查看仓库目录

ll !$

5.编辑svn服务配置文件svnserve.conf

svn服务配置文件为版本库目录中的文件conf/svnserve.conf。该文件仅由一个[general]配置段组成。

[general]
anon-access = none  #匿名用户没有任何权限
auth-access = write  #认证用户具有写权限
password-db = /opt/svn/repo/conf/passwd #用户的密码文件
authz-db = /opt/svn/repo/conf/authz #用户的信息文件
.....   #省略部分内容
  • anon-access: 控制非鉴权用户访问版本库的权限,取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:read
  • auth-access: 控制鉴权用户访问版本库的权限。取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 缺省值:write
  • authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz

6.创建账户密码文件

用户密码文件由svnserve.conf的配置项password-db指定,缺省为conf目录中的passwd。该文件仅由一个[users]配置段组成。

cd /opt/svn/repo  
vim conf/passwd  
  [users]
  admin = admin   #格式:用户名=用户密码
  thinker = 123456  #添加用户thinker

7.创建权限配置文件

权限配置文件由svnserve.conf的配置项authz-db指定,缺省为conf目录中的authz。该配置文件由一个[groups]配置段和若干个版本库路径权限段组成。

cd /opt/svn/repo  
vim conf/authz
   [/]
   admin=r
   thinker=r
   [/webphp]
    admin=r
    thinker=rw    #thinker用户对/opt/svn/repo/webphp目录具有读写权限

8.启动SVN服务

svnserve -d -r /opt/svn/repo #关闭通过Kill PID
  • -r: 配置方式决定了版本库访问方式。
  • --listen-port: 指定SVN监听端口,不加此参数,SVN默认监听3690

9.初始化SVN目录

mkdir /opt/svn/repo/webphp
svn import webphp file:///opt/svn/repo/webphp -m "初始化SVN目录"   #导入到本地webphp

使用SVN客户端操作

1.Yum安装svn软件包

yum install subversion -y

2.创建/var/www/html目录,本地同步SVN仓库的内容

mkdir -p /var/www/html
cd /var/www/html
svn co svn://192.168.100.135/webphp

3.测试

1.在SVN服务端webphp目录下创建一个文件夹,再进行初始化。

2.在SVN客户端/var/www/html本地再次同步服务端仓库的内容。