1. 什么是SVN
SVN全称SubVersion
特点:
- 操作简单,入门容易
- 支持跨平台
- 支持版本回退
属于C/S结构软件
2. 基本操作
服务端
1. 安装服务端
基本一路下一步, 可以手动改一改仓库(repository)路径
2. 创建仓库
https://www.cnblogs.com/fps2tao/p/8672394.html
SVN新建仓库步骤
https://blog.csdn.net/weixin_41187842/article/details/83062400
详细步骤带有图片
svnadmin create [代码仓库目录路径]
3. 服务器监管
svnserve -d -r [代码仓库路径]
# -d 表示后台运行
# -r 表示监管的是一个目录
这样就可以通过svn://localhost
访问到相关仓库
4. 权限控制
默认情况下,匿名用户无法读取仓库,因此要配置权限
# 打开仓库\conf\svnserve.conf文件 去掉anon-access=read的注释
anon-access = read
# 也可以改成write(可读可写)
这时要重启svn服务器,重新启动服务器监管
客户端
1. 客户端安装
2. 连接&checkout
进入你的本地工程目录,右键选择
输入svn地址svn://[ip]
,可以选择要checkout的repository,确定,然后再右键选择svn checkout 确认,即可,此时该目录下出现一个隐藏目录.svn
3. 详细使用
1. 三大指令
checkout
检出操作,连接到svn服务端,更新服务端数据到本地
注意:
checkout只在第一次连接时操作一次,以后请使用update
commit
在本地工程目录有修改操作后,可以右键选择svn commit
弹出TortoiseSNV提交窗口.
update
更新仓库到本地
2. 图标集
1.常规图标:
含义:当客户端文件与服务器文件完全同步的时候,系统就会显示以上图标
2.冲突图标:
含义:当客户端文件与服务器数据存在冲突时,系统会出现以上图标
3.删除图标:
含义:当服务器端的文件已经删除时候,那么客户端文件就会显示以上图标
4.增加图标:
含义:我们编写的文件已经提交到队列中,系统会显示以上图标
5.无版本图标:
含义:我们编写的文件没有提交到队列中,系统会显示以上图标
6.修改图标:
含义:客户端文件已经修改但是未提交,系统会出现以上图标
7.只读图标:
含义:当客户端文件以只读的形式存在时,系统会出现以上图标
8.锁定图标:
含义:当服务器数据已经锁定的时候,客户端文件会自动显示锁定图标
9.忽略图标:
含义:客户端文件已经忽略,不需要进行提交上传,系统会显示忽略图标。
忽略功能的实现:点击需要忽略的文件右击 TortoiseSVN
刷新一下即可。
3. 版本回退
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vvChE18U-1624532567408)(https://wx1.sbimg.cn/2020/06/06/4e88d31d396578d4810e56327a7ff299.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qvD3cEih-1624532567410)(https://wx2.sbimg.cn/2020/06/06/9d86402404e93e63af185a530058cbef.png)]
4. 版本冲突
当多个人同时修改一个文件,commit时会出现冲突
解决办法:
- 先更新(update)服务器数据到本地
- 一般情况下,查看并修改整合后的文件确认后,把其他文件删除
- 提交
5. 配置多仓库和权限控制
如何监管多个仓库?
直接监管所有仓库的父目录(所以仓库都在同一个文件夹下面)
然后就可以通过不同的url来访问不同的仓库
svn://localhost/shop
svn://localhost/web
权限控制
-
编辑conf/svnserve.conf
password-db = passwd authz-db = authz
-
编辑认证用户名和密码conf/passwd
[users] # harry = harryssecret # sally = sallyssecret admin = password sam = sys963
-
编写授权文件conf/authz
# 分组 [groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe admin = admin,sam # 组名 = 用户,... # 仓库权限 [Shop:/] # 仓库路径 @admin = rw # 用户组权限 * = r # 匿名用户权限
4. 使用svnserver结合IDE
管理用户
可以自行添加删除用户
新建仓库:
基本上一路下一步,除了权限配置需要自定义
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OrmWuuTp-1624532567417)(https://www.z4a.net/images/2020/06/06/5beb82cf37c8efd8fcd2a656d10f8147.png)]
配置完成后,会自动生成https的url,访问即可查看当前仓库
结合IDE使用(以webstorm为例)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkzTRvLW-1624532567419)(https://www.z4a.net/images/2020/06/06/aeda0d21082b22bbb31a1a80d3c9f00f.png)]
然后一路OK就行了,在Webstorm环境下自动checkout后会打开工作窗口,在右上角分别存在快捷命令
依次为update,commit,还有查看提交历史,点击提交历史的功能,即可显示所有commit的记录,在对应记录上右键Get即可切换版本(版本回退)
我的公众号
欢迎博友们关注一波!!!