概述
1. svn的概述
* SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
* 互联网上很多版本控制服务已从CVS迁移到Subversion
* 说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
* 解决团队开发中的代码管理的问题
2. 如果没有svn,一般会遇到的问题
- 代码管理混乱
- 备份多个版本,占用磁盘空间大
- 解决代码冲突困难
- 容易引发BUG
- 难于追溯问题代码的修改人和修改时间
- 难于恢复至以前正确版本
- 无法进行权限控制
- 项目版本发布困难
3. 相关概念
- 服务器 server 专用的硬件服务器
- 仓库 repository 专用于某个项目的磁盘空间,位于硬件服务器中
- 检出 checkout 一次性工作,下载代码并完成与服务器间的关联
- 上传/提交 commit 多次工作
- 更新 update 多次工作
- 记录日志 logger 记录操作相关的信息,包括动作,用户,时间,信息
- 版本号码 version 记录文件被操作的次数,即版本数
4. 常用的版本的控制工具
VSS、CVS、SVN、GIT
svn的体系结构
1. 体系结构如图:
2.SVN的仓库
- DB -- 使用数据库作为SVN的仓库
- FSFS -- 使用系统文件方式作为SVN的仓库
3.SVN仓库的访问(SVN的服务器)
- 整合Apache形式:http协议访问仓库
- svnserve的方式:使用命令开启SVN的服务,使用SVN的协议访问
4.SVN的客户端
- 命令行访问
- 图形化界面
svn的安装
1.Windows环境
- 下载:https://www.visualsvn.com/server/download/
- 双击Setup-Subversion-1.6.5.msi文件,注意自己的安装路径。点击next即可!!
- 查看是否安装成功: 打开DOS窗口,输入svnadmin --version 回车,查看是否安装成功!!
- 如果发现安装不成功,拷贝C:\Program Files (x86)\Subversion\bin路径,到环境变量的path配置一下就可以了!!
2.linux安装(yum)
- 检查是否已经有svn
svnserve --version
如果有卸载:
yum remove subversion
- 安装svn
yum install -y subversion
检查是否安装成功:
svnserve --version
yum安装方便,但是安装位置不能控制
目录结构
- bin -- 可执行的二进制文件
- iconv -- 字符集编码的文件(国际化文件)
- licenses -- 许可证协议
- share -- 本地语言转换
创建SVN的仓库
(必须要先创建仓库,才能启动svn服务)
1.Windows环境
1. SVN已经安装完成了,下面需要创建SVN的仓库
* 在某一个盘下创建文件夹,随意创建。例如:在C盘下创建Repositories文件,一个仓库可以存放多个项目,在Repositories文件夹中再创建多个子文件夹。代表不同的项目
2. 可以使用命令的方式或者图形化界面的方式来创建
* 命令的方式:svnadmin create c:\Repositories\crm
2.linux环境
- 创建仓库目录:
mkdir -p /home/svn/ssmall
- 创建仓库
svnadmin create /home/svn/ssmall
- 检查是否创建成功
cd /home/svn/ssmall && ll
创建成功会显示如下目录:
仓库目录结构
仓库创建好后,有如下的一些目录结构
- conf -- 配置文件(重点的配置文件)
svnserve.conf -- SVN的配置文件
passwd -- 用户名和密码的文件
authz -- 权限认证的文件
- db -- 版本数据存储目录
- hooks -- 存放版本库勾子目录
- locks -- 存储库锁目录,用来跟踪库的访问者
4. 启动仓库
1. 启动仓库分成两种主要的形式
* 单仓库启动(只启动其中的一个仓库)
* 多仓库启动(启动所有的仓库)
2. 启动仓库的方式有三种
* 命令行启动
* 单仓库启动:
svnserve -d -r /home/svn/ssmall/
* 多仓库启动:
svnserve -d -r /home/svn/
注释: -d:守护进程 -r:svn根目录
开发端口(firewall): firewall-cmd --zone=public --add-port=3306/tcp --permanent
使配置生效: firewall-cmd --reload
查看防火墙是否开启:firewall-cmd --state
停止防火墙: systemctl stop firewalld.service
重启防火墙: systemctl restart firewalld.service
开启防火墙: systemctl start firewalld
----------
### SVN的客户端工具的使用 ###
----------
**技术分析之安装图形画界面的工具**
1. 在可视化工具文件夹中选择自己电脑的版本的安装软件,双击安装!
* 双击 TortoiseSVN-1.7.12.24070-x64-svn-1.7.9.msi 安装
2. 安装完成图形界面后,可以使用图形界面的方式创建仓库
3. 安装后重启电脑
用户权限管理
* 步骤一:找仓库中的conf/svnserve.conf
* 步骤二:修改配置文件
- anon-access = none -- 匿名用户没有权限。(取值:none/read/write)
- auth-access = write -- 认证用户有读写权限
- password-db = passwd -- 让passwd的文件生效
用户名密码文件,可以使用绝对路径,如果使用相对路径指相对于conf目录的位置路径。注意:如果该选项不开启,用户名密码文件将失效
- authz-db = authz -- 让authz的文件生效
授权管理文件,可以使用绝对路径,如果使用相对路径指相对于conf目录的位置路径。注意:如果该选项不开启,授权管理将失效
- realm = My First Repository 版本库认证域名称,也就是需要认证的仓库名, 可以不配
步骤三 :打开passwd文件:设置用户名和密码
设定用户信息
harry = harryssecret
用户名 = 密码
注意:用户名与密码间的空白
步骤四 :打开authz文件:设置用户的权限
设定用户组,便于管理
用户组名 = 用户名1,用户名2,用户名3,……
设定访问权限按目录结构进行设定,根结构写为[/]
harry = rw
用户名 = 读写权限 r-读 w-写
@ harry_and_sally = rw
@用户组名 = 读写权限