Subversion版本控制

简介

SVN是一款版本控制软件。

可以管理文件、文件夹以及记录他们的修改情况。

将需要管理的源代码跟文档导入到版本库中,版本库类似于文件服务器。

通常用来管理软件开发源代码。

 

原理

两个用户从版本库中下载文件副本到本地。

如果两个用户修改的是版本库中不同文件或同一文件的不同地方,可以使用更新命令同步到版本库。

如果修改的是同一文件相同地方,则更新会失败,需要人工判断修改内容有效性,最后上传到版本库中。

 

访问

客户端访问服务器有四种方法

svnserve访问、svnserve+SSH访问、Apache间接访问、本地访问

 

svnserve访问

服务器启动svnserve服务,客户端可通过Subversion专用协议进行访问,特点简单、轻便、快。

 

svnserve+SSH访问

在svnserve服务基础上提供ssh加密传输,特点简单,快,安全。

 

Apache间接访问

可通过mod_dav_svn模块访问版本库,可直接通过浏览器访问版本库,特点复杂、安全、慢。

 

本地访问

不需要联网,对服务器直接进行操作,在实际工作中应用较少。

 

安装

yum -y install subversion

#创建服务器版本库
mkdir /var/svn
svnadmin create /var/svn/web_project
svnadmin hotcopy /var/svn/web_project /var/svn/web_project_copy

/*
svnadmin命令可以创建服务器版本库
create 创建一个版本库
hotcopy 版本库热备
lslocks 大约所有的锁描述
*/

#使用svn命令将本地web_code目录下的资料导入版本库中
#-m 选项为描述
svn import /var/web_code/ file:///var/svn/web_project/ -m "Initial DaTA"

#列出版本库中的资料列表
svn list file:///var/svn/web_project/

 

认证与授权

#修改配置文件,定义认证与授权策略
cat /var/svn/web_project/conf/svnserve.conf
[general]
anon-access = none #拒绝匿名账户访问,可设置为none,read,write
auth-access = write #通过认证的用户权限可写
password-db = passwd #指定用户名称与密码存放文件名,该文件在conf目录下
authz-db = authz #指定基于路径的访问控制文件名(可以对文件或目录设置权限)
realm = My First Repository #设置版本库域,如果两个版本库的认证域相同,则他们使用相同的密码数据。

#查看passwd文件内容
cat /var/svn/web_project/conf/passwd
[users]
tom = 123456 #用户名为tom,密码为123456
tz = 123456

#查看authz文件内容
cat /var/svn/web_project/conf/authz
[groups]
admins = tom,tz #定义组,组成员有tom跟tz
[/] #对版本库根路径设置权限
@admins = rw #admins组中的用户可读、可写权限
* = r #其他所有人可读权限

 

启动svnserve服务

svnserve -d 

/*
-d 以守护进程方式运行svnserve,后台运行持续监听客户端访问
--listen-port=port 指定监听端口,默认为3690端口
-r /var/svn/ 发布个别版本库给用户
*/

 

posted @ 2020-10-09 16:42  努力吧阿团  阅读(124)  评论(0编辑  收藏  举报